R 矩阵的行积与列和

R 矩阵的行积与列和,r,matrix,R,Matrix,我有一个大小为TxR的矩阵,我正在寻找一个命令来进行行的乘积(返回乘积的1 x R向量)。之后,我想对各列求和,即对R项求和 在Matlab中,这将是这样的总和(prod(A,1),2),但我不知道R中的代码 我希望这是有意义的 谢谢 跨行应用prod函数(1为边距),对结果求和。在基数R中: mat <- matrix(c(1,2,3, 4,5,6, 7,8,9), byrow = TRUE, ncol = 3) R &l

我有一个大小为TxR的矩阵,我正在寻找一个命令来进行行的乘积(返回乘积的1 x R向量)。之后,我想对各列求和,即对R项求和

在Matlab中,这将是这样的总和(prod(A,1),2),但我不知道R中的代码

我希望这是有意义的

谢谢

跨行应用prod函数(1为边距),对结果求和。

在基数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

仅给出部分答案,但使用行和可以构建基于base-R行积函数:

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

mat显然不清楚你想要什么。您声明希望
行的乘积
,然后给出
prod(A,1)
,而建议的是
prod(A,2)
。你能澄清一下你是否需要每行的乘积,然后求和吗?有趣的技巧!我甚至不知道乘积是对数和的指数。我从mathworld找到了一个链接:
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
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