R 矩阵的行积与列和
我有一个大小为TxR的矩阵,我正在寻找一个命令来进行行的乘积(返回乘积的1 x R向量)。之后,我想对各列求和,即对R项求和 在Matlab中,这将是这样的总和(prod(A,1),2),但我不知道R中的代码 我希望这是有意义的 谢谢 跨行应用prod函数(1为边距),对结果求和。在基数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
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