【发布时间】:2017-06-29 18:05:55
【问题描述】:
我有一个 data.table 并且想要对列进行线性组合。 我该怎么做?
设置
require(data.table)
set.seed(1)
DT <- data.table(A = rnorm(10),
B = rnorm(10),
C = rnorm(10),
D = rnorm(10),
coefA = rnorm(10),
coefB = rnorm(10),
coefC = rnorm(10),
coefD = rnorm(10))
我可以做到以下几点:
DT[, sum := A*coefA + B * coefB + C * coefC + D * coefD]
有没有更好的方法来解决这个问题?
【问题讨论】:
-
鉴于你的问题,没有更好的办法
-
在这种情况下,使用矩阵可能会更好。这是基础 R 中的一种方法。`myMat rowSums(myMat[, 1:4] * myMat[, 5:8]) 计算点积。
-
这些不是线性组合。如果有人根据标题登陆这里,正确的参考是我的问题,我猜stackoverflow.com/questions/19279075/…
标签: r data.table