用data.table进行矩阵操作,规范不正确?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用data.table进行矩阵操作,规范不正确?相关的知识,希望对你有一定的参考价值。

我想用 dcast.data.tableas.matrix的方式来使用它。dcast但我却无法达到可比的效果。我将感谢任何有关这方面的建议。

library(reshape2)
library(data.table)
data(ChickWeight)

# this returns the correct dimension:
> as.matrix(dcast(ChickWeight, weight ~ Diet, value.var = "Time")[,-1])
Aggregation function missing: defaulting to length
        1 2 3 4
  [1,]  1 0 0 0
  [2,]  2 3 2 1
  [3,]  1 2 0 2
      .....

# this doesn't
    > as.matrix(dcast.data.table(setDT(ChickWeight), weight ~ Diet, value.var = "Time")[,-1])
Aggregate function missing, defaulting to 'length'
     [,1]
[1,]   -1
答案

在当前CRAN版本的 data.table,下面就可以了。

as.matrix(dcast.data.table(setDT(ChickWeight), weight ~ Diet, 
                      value.var = "Time")[,-1])

以上是关于用data.table进行矩阵操作,规范不正确?的主要内容,如果未能解决你的问题,请参考以下文章

是否存在稀疏矩阵/对象的`data.table`表示?

JVM系列之.JVM内存模型如何正确运用操作?本文详解

JVM系列之.JVM内存模型如何正确运用操作?本文详解

规范化data.table的每一行

MATLAB中如何用for 循环将结果代入矩阵中?

在 data.table 中逐行应用返回列表/矩阵的函数