矩阵的行乘积和矩阵的列和

时间:2013-11-25 16:59:08

标签: r matrix

我有一个大小为TxR的矩阵,我正在寻找一个命令来做行的产品(返回产品的1 x R向量)。之后我想总结一下列,即总结R项。

在Matlab中,这将完成类似于这个总和(prod(A,1),2),但我不知道R中的代码。

我希望它有意义。

由于

3 个答案:

答案 0 :(得分:11)

sum(apply(A, 1, prod))

在行之间应用prod函数(1是边距),对结果求和。

答案 1 :(得分:8)

在基地R:

mat <- matrix(c(1,2,3,
                4,5,6,
                7,8,9), byrow = TRUE, ncol = 3)

R <- apply(mat, 1, prod)
R
sum(R)

R> R
[1]   6 120 504
R> sum(R)
[1] 630

在CRAN上有一个很好的替代方案,名为 matrixStats ,旨在添加其他矩阵函数的快速版本,以补充rowSumscolSums(和它们的平均等价物)基地R。

install.packages("matrixStats") ## install it from CRAN

## load matrixStats
library("matrixStats")
rowProds(mat)

R> rowProds(mat)
[1]   6 120 504
R> sum(rowProds(mat))
[1] 630

答案 2 :(得分:0)

仅是部分答案,但是使用rowSums可以在base-R row-product-function上构建您的

mat <- matrix(c(1,1,0,
                1,3,-6,
                12,12,12), byrow = TRUE, ncol = 3)

# function based on rowSums
my_rowprod <- function(x) ifelse((rowSums(x < 0) %% 2) == 1, -1, 1) * exp(rowSums(log(abs(x))))

my_rowprod(mat)
#[1]    0  -18 1728