data.table相关内容

将变量和名称传递给 data.table 函数

我有一份报告需要应用于不同名称的 data.tables [j 和 by].我通过将参数包装在 eval(substitute(value)) 函数中来完成它的唯一方法.这会降低代码的可读性.我已将 j 参数命名为“变量",但我想将函数的 j 参数传递给 setnames 函数. 所以,问题是: 有没有办法避免 eval(substitute(value)) 构造? 我可以将 j ..
发布时间:2022-01-13 19:31:59 其他开发

R data.table 与 rollapply

是否存在使用 data.table 分组计算滚动统计数据的现有习惯用法? 例如,给定以下代码: DT = data.table(x=rep(c("a","b","c"),each=2), y=c(1,3), v=1:6)设置键(DT,y)stat.ror ..
发布时间:2022-01-13 19:31:52 其他开发

R data.table 按因子循环子集并执行 lm()

我正在尝试创建一个函数,甚至只是想出如何使用 data.table 语法运行循环,我可以按因子对表进行子集化,在这种情况下是 id 变量,然后在每个子集上运行线性模型,然后出结果.示例数据如下. df ..
发布时间:2022-01-13 19:31:42 其他开发

R data.table 计算新列,但在开头插入

在 R data.tables 中,我可以使用这种语法来添加一个新列: >dt 但是我如何像这样在 dt 的前面插入 c: c a b1:4 1 32:6 2 4 我查看了SO,发现有人建议data.frames使用cbind,但我使用:=更方便code> 语法在这里,所以我想知道是否有 data.table 认可的方式来执行此操作.我的 data.table 大约有 100 列,所以 ..
发布时间:2022-01-13 19:31:36 其他开发

比较 fread 与 read.table 读取 100M 中前 1M 行的速度

我有一个 14GB 的 data.txt 文件.我通过读取前 1M 行来比较 fread 和 read.table 的速度.看起来 fread 慢得多,尽管它不应该如此.百分比计数出现需要一些时间. 可能是什么原因?我认为它应该超级快......我使用的是 Windows 操作系统计算机. 解决方案 fread mmaps 文件.这需要一些时间,并且会映射整个文件.这意味着后续的“读 ..
发布时间:2022-01-13 19:31:30 其他开发

在两个 data.tables 中添加值

我有两个 data.tables,一个有另一个的行/列的子集.我想将较小的 data.table 的值添加到较大的值: DT1 我想将 DT1 添加到 DT2 以便我得到 # rn a b c#1:一个 0 4 1#2: b 1 5 0#3:c 1 1 3 我知道我可以很容易地用 DT1 覆盖 DT2 的值: DT2[DT1, 名称(DT1) := DT1, on="rn"] 我希望 ..
发布时间:2022-01-13 19:31:15 其他开发

按组值连接 SD 列的数据表字符串

我有一个大数据集,其中包含许多看起来与此类似的变量: >data.table(a=字母[1:10],b=字母[1:10],ID=c(1,1,1,2,2,2,2,3,3,3))投标1:一个 A 12:乙乙13:c C 14:d D 25: e E 26: f F 27:克G 28:h H 39:我我 310: ĴĴ 3 我想为每个 ID 值连接除 ID 之外的所有列值(它们之间带有换行符),因 ..
发布时间:2022-01-13 19:31:06 其他开发

使用 data.table 按组计算值的百分比/比例

我有一个如下所示的 data.table: x, y, sum(count)1、1、31、2、71、3、82、1、42、2、32、3、10 等等.它由 x 和 y 键入,我在 count 列上做了一个 sum.我想按 x 的值将其分解为百分比,使其变为: x、y、百分比(计数)1, 1, 16.71、2、38.91, 3, 44.42, 1, 23.52, 2, 17.62, 3, 58.8 ..
发布时间:2022-01-13 19:30:56 其他开发

R data.table 连接:SQL“选择 *"连接表中的类似语法?

我有两个包含许多字段的 data.tables. 我想连接这两个表,添加一些计算字段并附加来自第一个、第二个或两个表的所有其他字段(类似于 SQL 的 select a+b AS sum, DT1.*, DT2.* FROM...) 无需输入所有字段名称. 我该怎么做(关于最简单的语法和最佳性能)? 简化示例数据: 库(data.table)DT1 = data.table(x ..
发布时间:2022-01-13 19:30:45 其他开发

data.table 中的 dplyr::slice

在 data.table 中执行以下操作的惯用方式是什么? 库(dplyr)df %>%group_by(b) %>%切片(1:10) 我可以的 库(data.table)df[, .SD[1:10], 由 = b] 但这看起来要慢得多.有没有更好的办法? set.seed(0)df %data.table(a = runif(长度(.)),b = .)f1 %group_by(b) % ..
发布时间:2022-01-13 19:30:37 其他开发

在 data.table 中使用 := 和 paste()

我已经开始将 data.table 用于大型人口模型.到目前为止,我印象深刻,因为使用 data.table 结构将我的模拟运行时间减少了大约 30%.我正在尝试进一步优化我的代码并包含一个简化的示例.我的两个问题是: 是否可以在此代码中使用 := 运算符? 使用 := 运算符会更快(尽管,如果我能够回答我的第一个问题,我应该能够回答我的问题 2!)? 我在运行 Windows 7 ..
发布时间:2022-01-13 19:30:29 其他开发

“通过引用更新"与浅拷贝

[.data.table 中的set 函数或表达式:= 允许用户通过引用来更新data.tables.这种行为与将操作结果重新分配给原始 data.frame 有何不同? keepcols 由于表达式 ..
发布时间:2022-01-13 19:30:13 其他开发

data.table 连接(多个)具有新名称的选定列

我喜欢连接两个表,它们有一些相同的列(名称和值),而另一些则没有.我只对加入那些不相同的人感兴趣,我想为他们确定一个新名字.对于我拥有 100 多列的真实表,我目前的做法似乎很冗长且难以处理,即我想提前确定要连接的列,而不是在 join 语句中.可重现的例子: #创建表1DT1 = data.table(id = 1:5, x=letters[1:5], a=11:15, b=21:25)# 创 ..
发布时间:2022-01-13 19:29:56 其他开发

如何在特定条件下创建排名变量?

我的数据包含时间变量和选择的品牌变量,如下所示.time表示购物时间,choicebrand表示当时购买的品牌. 使用这些数据,我想创建排名变量,如第三列、第四列等所示. 品牌排名(例如,brand1 - brand3)应基于过去 36 小时.因此,要计算第二行的排名,其中 shoptime 为 "2013-09-01 08:54:00 UTC",排名应基于所有 chosenbrand ..
发布时间:2022-01-13 19:29:47 其他开发