如何高效地执行列式乘法?

时间:2017-04-01 15:00:32

标签: r data.table

我正在尝试在data.table中明智地应用多个乘法列。例如:

require(data.table)
DT <- data.table(a=1:5,b=2:6,c=3:7,
                 d=rep(1,5),e=rep(0,5),f=rep(-1,5))    

我想要* d,b * e和c * f的结果,因为我有400列再乘以另外400列, 我想知道是否有一些有效的解决方案。谢谢!

3 个答案:

答案 0 :(得分:3)

将另一组列乘以另一组:

> DT[,1:3]*DT[,4:6]
   a b  c
1: 1 0 -3
2: 2 0 -4
3: 3 0 -5
4: 4 0 -6
5: 5 0 -7

对于较大的问题,使用800列,它应该只是:

> DT[,1:400]*DT[,401:800]

答案 1 :(得分:0)

是的,这很容易,但我很困惑!

DT[,paste0("a",1:3):= DT[,1:3]*DT[,4:6]]

答案 2 :(得分:-1)

另一种方法:

    DT[, Reduce('*',list(DT[,c("a","b","c")],DT[,c("d","e","f")]))]