我试图在data.table中应用多个乘法列wise。示例:
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))
我想要a* d,b* e和c* f的结果,因为我有400列乘以另外400列,我想知道是否有一些有效的解。谢谢!
发布于 2017-04-01 07:07:33
将一组列乘以另一组:
> 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]
发布于 2017-04-01 07:18:38
是的,这很容易,但我困惑太久了!
DT[,paste0("a",1:3):= DT[,1:3]*DT[,4:6]]
发布于 2017-04-05 04:07:20
另一种方法:
DT[, Reduce('*',list(DT[,c("a","b","c")],DT[,c("d","e","f")]))]
https://stackoverflow.com/questions/43158386
复制