我有一個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