添加矩阵R中的所有元素

Ign*_*tro 7 r matrix

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

 m = matrix(c(528,479,538,603),nrow=2,ncol=2)
 m
                   A            B
male              528          538
female            479          603
Run Code Online (Sandbox Code Playgroud)

我想做:

 sum.elements = colSums(colSums(m))
Run Code Online (Sandbox Code Playgroud)

但它给出以下错误:

colSums中的错误(colSums(m)):'x'必须是至少包含两个维度的数组

我试过做:

x = colSums(m)
sum.elements = x[1] + x[2]
Run Code Online (Sandbox Code Playgroud)

但是当你有一个100列矩阵时,这将是非常长的...

任何帮助将不胜感激!

akr*_*run 9

你可以做到sum.它还可以选择na.rm删除NA值.

 sum(m)
 #[1] 2148
Run Code Online (Sandbox Code Playgroud)

在一般情况下,sum工程vector,matrixdata.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 
Run Code Online (Sandbox Code Playgroud)