data.table按向量乘以列(总和产品样式)

时间:2017-12-06 19:17:52

标签: r data.table

我想知道是否有更快的方法将一组列乘以向量中的值(基本上应用回归公式)。我看到this post,但它需要将data.table转换为低效的矩阵。

我也看到this old post包含一个for循环,但是我测试的循环比我在这里的循环慢得多,并且考虑到帖子的年龄,我想知道是否还有其他方法。

还有其他建议吗?

set.seed(100)
N = 2e7L
DT1 = data.table(id = sample(letters[1:10], N, TRUE),
                 a = sample(0:3, N, TRUE),
                 b = sample(0:3, N, TRUE),
                 c = sample(0:3, N, TRUE),
                 d = sample(0:3, N, TRUE))

v <- c(0.2232332, 0.332424, 0.3322525250, 0.32342323432)

# 528.4188 ms
microbenchmark({
  DT1[,blah:=a*v[1] + b*v[2]  + c*v[3] + d*v[4]]
}, times = 1, unit = "ms")

0 个答案:

没有答案