我正在尝试在矩阵中添加所有元素。这是我的矩阵的一个例子(实际矩阵更大):
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列矩阵时,这将是非常长的......
非常感谢任何帮助!
答案 0 :(得分:8)
你可以sum
。它还具有na.rm
选项,可以删除NA
值。
sum(m)
#[1] 2148
通常,sum
适用于vector
,matrix
和data.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