添加矩阵R中的所有元素

时间:2015-05-16 16:18:27

标签: r matrix

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

 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列矩阵时,这将是非常长的......

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:8)

你可以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 

答案 1 :(得分:3)

Reduce将有效

 Reduce(`+`,m)
    [1] 2148