【发布时间】:2018-02-22 09:58:12
【问题描述】:
我最近想在R中不断地把很多列相乘,形成一个新的变量。
我发现R中有一个prod函数,它可以提供许多向量或矩阵中所有元素的乘积。
但是,我不想得到所有元素的乘积。相反,我想得到每一行的乘积。
我可以用下面的循环代码来做到这一点:
t <-
data.frame(x1=round(round(runif(10),1)+1),
x2=round(round(runif(10),1)+1))
for(i in 1:nrow(t)) { t$y[i] <- prod(t[i,]) }
但是,我想知道是否有更有效的方法或更简单的功能,因为我可以像prod(t$1:t$2) 一样使用并得到我想要的结果。
【问题讨论】:
-
你可以试试
library(matrixStats); rowProds(as.matrix(t))