我有一个data.table,并希望采取列的线性组合。 我该怎么做?如何计算R数据中不同列的线性组合。表
的设置
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]
有没有更好的办法来解决这个问题?
鉴于你的问题,没有就没有更好的办法 – statquant
在这种情况下,你'可能会更好工作与矩阵。这里有一个方法可以在base R.'myMat < - as.matrix(DT)'中转换为一个矩阵,然后'rowSums(myMat [,1:4] * myMat [,5:8])'来计算点产品。 – lmo
那些不是线性组合。如果有人根据标题登陆这里,正确的ref是我的问题,我猜https://stackoverflow.com/questions/19279075/efficiently-computing-a-linear-combination-of-data-table-columns – Frank