对data.table的数学运算(R中)

用户名

我从我的朋友那里听说,对data.table的数学运算比对矩阵的数学运算要快得多。我正在尝试计算大小为30kx30k的两个矩阵的dot.product,并寻找花费的时间

matrix1 = matrix(rexp(200, rate=.1), ncol=30000,nrow=30000)
matrix2 = matrix(rexp(200, rate=.1), ncol=30000,nrow=30000)
product = matrix1 %*% matrix2

我想使用data.table做同样的事情

dt1<- as.data.table(matrix1)
dt2<- as.data.table(matrix2)

您能否告诉我是否有更简单的方法在data.table上进行点积运算(无需将其转换为矩阵)?

里卡多·萨波特塔

这个问题的前提是不正确的。data.tabledata.frames一样是向量列表。

相反,矩阵是具有维属性的单个向量。

与列表相关的开销是可以避免的,如果您的数据可以适合矩阵。

data.tables 相对于data.frames(并取决于应用程序,列出自身)或使用另一个向量作为迭代参考时,速度更快。

但是,对于直接矩阵乘法,请坚持 matrix

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章