添加矩阵R中的所有元素

问题描述 投票:7回答:2

我正在尝试将所有元素添加到矩阵中。这是我的矩阵的一个例子(实际矩阵更大):

 m = matrix(c(528,479,538,603),nrow=2,ncol=2)
 m
                   A            B
male              528          538
female            479          603

我正在尝试:

 sum.elements = colSums(colSums(m))

但是它给出了以下错误:

colSums(colSums(m))中的错误:'x'必须是至少两个的数组尺寸

我尝试做:

x = colSums(m)
sum.elements = x[1] + x[2]

但是当您有一个100列的矩阵时,这会很长...

任何帮助将不胜感激!

r matrix
2个回答
9
投票

您可以执行sum。它还具有na.rm选项,可删除NA值。

 sum(m)
 #[1] 2148

[通常,sum适用于vectormatrixdata.frame

基准

 set.seed(24)
 m1 <- matrix(sample(0:20, 5000*5000, replace=TRUE), ncol=5000)
 system.time(sum(m1))
 #  user  system elapsed 
 # 0.027   0.000   0.026 

 system.time(sum(colSums(m1)))
 # user  system elapsed 
 # 0.027   0.000   0.027 

 system.time(Reduce('+', m1))
 #  user  system elapsed 
 #25.977   0.644  26.673 

3
投票

Reduce将起作用

 Reduce(`+`,m)
    [1] 2148
© www.soinside.com 2019 - 2024. All rights reserved.