我正在尝试在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列, 我想知道是否有一些有效的解决方案。谢谢!
答案 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")]))]