[英]Product of a set of columns in data.table in R
我有一个数据表如下
> temp = data.table(A = runif(10), B = runif(10), C = runif(10))
> temp
A B C
1: 0.9780187 0.3706999 0.38986569
2: 0.3614894 0.4578619 0.47973024
3: 0.1974928 0.2198876 0.79985610
4: 0.2509917 0.7791180 0.13150595
5: 0.5975064 0.1469739 0.78714248
6: 0.7823076 0.1806161 0.04970207
7: 0.9637526 0.4106579 0.63153566
8: 0.6985434 0.5870737 0.53784899
9: 0.9755159 0.1097774 0.18338828
10: 0.5010543 0.9847809 0.99354549
我想计算所有这些列的乘积。 如何使用data.table做到这一点?
对于data.table
, .SD
表示.SD
子集。 如果我们未指定任何要在.SDcols
选择的.SDcols
,则为整个数据集。 使用带有*
Reduce
,可以对数据集每一列的对应元素进行乘法运算
temp[, Reduce(`*`, .SD)]
给出每行相乘值的vector
如果打算在数据集中创建一列,则将( :=
)分配给新列
temp[, prodCol := Reduce(`*`, .SD)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.