data.table相关内容

R Data.Table 条件连接

我有两个表,我想以与以下 SQL 相同的方式将它们连接在一起,其中我在多个条件下连接,而不仅仅是相等. 需要(sqldf)需要(数据表)dt 出于性能和灵活性的原因,我想避免使用 SQL 解决方案.进行交叉连接,然后进行过滤/聚合也是如此——它会创建一个中间表,其中包含许多不必要的记录供我过滤掉. 非常感谢! 更新——我最初的例子是匆忙完成的.在我的实际问题中,我没有进行自我加入 ..
发布时间:2022-01-13 19:22:26 其他开发

使用 data.table 功能将长结构化 data.table 重塑为宽结构?

>库(数据表)>A 显然,我可以使用 f.x 将 data.table 从长到宽重塑.包 reshape2 的 dcast.但是 data.table 带有一个重载的括号运算符,提供像“by"和“group"这样的参数,这让我想知道是否可以使用它来实现它(到 data.table 特定功能)? 手册中的一个随机示例: DT[,lapply(.SD,sum),by=x] 这看起来很棒 ..
发布时间:2022-01-13 19:22:16 其他开发

与 data.tables 的非连接

我有一个关于“非连接"的 data.table 习语的问题,灵感来自 Iterator 的 问题.这是一个例子: 库(data.table)dt1 data.table看起来像这样 >dt1>dt2A1 B1 A2 B2[1,] 一 1 [1,] 一 2[2,] b 4 [2,] b 5[3,] c 2 [3,] c 2[4,] d 5 [4,] d 1[5,] e 1 [5,] e 1[ ..
发布时间:2022-01-13 19:22:09 其他开发

如何快速汇总和汇总数据?

我有一个标题如下所示的数据集: PID 时间站点代表计数 我想通过 Rep 对每个 PID x Time x Site 组合的 Count 求和 在生成的 data.frame 上,我想获取 PID x Time x Site 组合的 Count 的平均值. 目前的功能如下: dummy ..
发布时间:2022-01-13 19:22:03 其他开发

将带有 dimnames 的矩阵转换为长格式 data.frame

希望这里有一个简单的答案,但我在任何地方都找不到. 我有一个包含行名和列名的数字矩阵: # 1 2 3 4# 一个 6 7 8 9# b 8 7 5 7# c 8 5 4 1# d 1 6 3 2 我想将矩阵融合为长格式,其中一列中的值和矩阵行和列名各在一列中.结果可能是这样的 data.table 或 data.frame: # col 行值#1 一 6# 1 b 8# 1 c 8# ..
发布时间:2022-01-13 19:21:54 其他开发

data.table vs plyr 回归输出

data.table 包在速度方面非常有帮助.但我在实际使用线性回归的输出时遇到了麻烦.有没有一种简单的方法可以让 data.table 输出与 plyr 包中的输出一样漂亮/有用?下面是一个例子.谢谢! library('data.table');图书馆('plyr');REG data.table 系数估计值在单个列中输出,而 plyr/ddply 系数估计值在多个且标记良好的列中输出. ..
发布时间:2022-01-13 19:21:44 其他开发

将新列添加到包含许多变量的 data.table

我想根据分组计算同时向 data.table 添加许多新列.我的数据的一个工作示例如下所示: 时间库存 x1 x2 x31: 2014-08-22 A 15 27 342:2014-08-23 A 39 44 293: 2014-08-24 A 20 50 54: 2014-08-22 B 42 22 435: 2014-08-23 B 44 45 126: 2014-08-24 B 3 21 ..
发布时间:2022-01-13 19:21:30 其他开发

最快的子集化方法 - data.table vs. MySQL

我是 R 用户,我经常发现我需要编写需要对大型数据集(数百万行)进行子集化的函数.当我将这些函数应用于大量观察时,如果我不小心如何实现它,可能会非常耗时. 为此,我有时会使用 data.table 包,它提供的速度比使用数据帧的子集快得多.最近开始试验RMySQL之类的包,把一些表push到mysql,用这个包运行sql查询并返回结果. 我发现性能改进参差不齐.对于较小的数据集(数百万 ..
发布时间:2022-01-13 19:21:22 数据库

如何优化 R 中矩阵子部分的读写(可能使用 data.table)

TL;DR 在 R 中读取和写入子集的最快方法是什么来自一个非常大的矩阵的列.我尝试使用 data.table 解决方案但需要一种快速的方法来提取列序列? 简短回答:操作中代价高昂的部分是赋值.因此,解决方案是坚持使用矩阵并使用 Rcpp 和 C++ 来修改矩阵.下面有两个很好的示例答案.[对于那些适用于其他问题的人,请务必阅读解决方案中的免责声明!].滚动到问题的底部,了解更多经验教 ..
发布时间:2022-01-13 19:21:15 其他开发

优雅地更新多个 data.table 列

我正在尝试做一件简单的事情,将 data.table 的 40 列除以它们的平均值.我无法提供实际数据(并非所有列都是数字,而且我有 > 8M 行),但这里有一个示例: 库(data.table)dt 接下来我想我会这样做: for (col in names(colmeans)) dt[,col:=dt[,col]/colmeans[col]] 但这会返回错误,因为 dt[,col] ..
发布时间:2022-01-13 19:21:05 其他开发

使用包 data.table 中的 fread 一次读取块

我正在尝试使用 data.table 包中的 fread 函数输入一个以制表符分隔的大文件(大约 2GB).然而,因为它太大了,它并不完全适合内存.我尝试使用 skip 和 nrow 参数分块输入它,例如: chunk.size = 1e6完成 = 假块 = 1而(!完成){temp = fread("myfile.txt",skip=(chunk-1)*chunk.size,nrow=chun ..
发布时间:2022-01-13 19:20:35 其他开发

为 data.table 对象编写函数(过程)

在Software for Data Analysis: Programming with R一书中,John Chambers 强调,通常不应该为函数的副作用而编写函数;相反,一个函数应该在不修改其调用环境中的任何变量的情况下返回一个值.相反,使用 data.table 对象编写好的脚本应该特别避免使用带有 ..
发布时间:2022-01-13 19:20:18 其他开发

fread 和带引号的多行列值

>fread('col1,col2\n')2列的空data.table(0行):col1,col2>fread('col1,col2\n5,4')col1 col21:5 4>fread('col1,col2\n5,"4\n3"')fread("col1,col2\n5,\"4\n3\"") 中的错误:在此行上观察到不平衡的引号 ("):3"> read.csv 可以导入此 csv,只要跨越多行 ..
发布时间:2022-01-13 19:19:49 其他开发

获取 data.table 中每列最后一个非 NA 行的值

我有一个 datatable ,其中每一列代表一个时间序列,我想以列顺序的方式获取每个时间序列的最后一个 NA 值.在我的特定用例中,我的数据如下所示: a b c1 2 51 -17 9北美 11 4不适用 57 不适用63 无 无 所以我想从中提取: a b c63 57 4 我怎样才能做到这一点?到目前为止,我只看到解决每行而不是每列提取最后一个非 NA 的相反情况的答案. 解 ..
发布时间:2022-01-13 19:19:41 其他开发

在 data.table 中按组缩放

我想按组“会话"缩放 data.table 中的变量选择: 会话 score1 score21:1 0.11111111 0.60000002:1 0.00000000 0.53333333:1 0.27777778 0.66666674:1 0.66666667 0.86666675:1 0.83333333 1.00000006:2 0.07692308 0.57575767:2 0.25 ..
发布时间:2022-01-13 19:19:24 其他开发