设矩阵为A
方法一:colSums(A)
方法二:apply(A,2,sum)
>x<-matrix(c(1,1,2,1,2,3,4,1),4,2)
>x
[,1] [,2]
[1,] 1 2
[2,] 1 3
[3,] 2 4
[4,] 1 1
>length(which((x[,1]==1)))
[1] 3
>length(which((x[,2]==1)))
[1] 1
#x[,1]==1判断是否为1,返回True或False
# which((x[,1]==1))返回为True的行号
#length(which((x[,1]==1)))返回为True的行数,即1的个数
简正模式
矩阵在物理学中的另一类泛应用是描述线性耦合调和系统。这类系统的运动方程可以用矩阵的形式来表示,即用一个质量矩阵乘以一个广义速度来给出运动项,用力矩阵乘以位移向量来刻画相互作用。求系统的解的最优方法是将矩阵的特征向量求出(通过对角化等方式),称为系统的简正模式。
以上内容参考:百度百科-矩阵
上图是一个简单的例子,b为一矩阵,现在想统计第二列中数值等于1的元素个数,首先做一个逻辑判断,即b[,2]==1,得到一个由布尔变量true和false组成的向量。
此时只需要知道true的数量,由于对布尔变量求和,true转化为1,false转化为0,故对该向量求和即可得到true的数量,即b[,2]中等于1的数量。
如果是统计整个矩阵,比如y那么直接table(y)
>y
[,1] [,2] [,3]
[1,]123
[2,]222
[3,]321
>table(y)
y
1 2 3
2 5 2
所以如果统计所有列,那就自己写个循环吧
for(i in 1:ncol(y)){
table(y[,i])
}