繁体   English   中英

R中data.table中的一组列的乘积

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM