R 有条件地计算矩阵中的值
在R中,我想计算矩阵的一列中出现的不同值的数量,但前提是某个值出现在另一列中。为了澄清,考虑这个矩阵:R 有条件地计算矩阵中的值,r,R,在R中,我想计算矩阵的一列中出现的不同值的数量,但前提是某个值出现在另一列中。为了澄清,考虑这个矩阵: MAT <- matrix(nrow=5,ncol=2, c(1,0,1,1,2,1,1,1,2,0)) 我想查找在第2列中出现的“1”的数量,但仅当“0”出现在同一行的第1列中时。我知道的唯一一个做类似事情的函数是table,但我认为它不能检查其他列;它只能排除正在检查的数据中的值。(如果我错了,请纠正我。)我曾尝试在互联网上搜索,但我只找到无关问题的答案 有人能帮我找到解决此问题的
MAT <- matrix(nrow=5,ncol=2, c(1,0,1,1,2,1,1,1,2,0))
我想查找在第2列中出现的“1”的数量,但仅当“0”出现在同一行的第1列中时。我知道的唯一一个做类似事情的函数是table
,但我认为它不能检查其他列;它只能排除正在检查的数据中的值。(如果我错了,请纠正我。)我曾尝试在互联网上搜索,但我只找到无关问题的答案
有人能帮我找到解决此问题的函数吗?您可以这样做:
sum(MAT[,2]==1 & MAT[,1]==0)
您可以这样做:
sum(MAT[,2]==1 & MAT[,1]==0)
始终可以使用以下条件对矩阵进行子集:
> MAT
[,1] [,2]
[1,] 1 1
[2,] 0 1
[3,] 1 1
[4,] 1 2
[5,] 2 0
MAT[ MAT[,1] == 0, ]
table( MAT[ MAT[,1] == 0, ] )
始终可以使用以下条件对矩阵进行子集:
> MAT
[,1] [,2]
[1,] 1 1
[2,] 0 1
[3,] 1 1
[4,] 1 2
[5,] 2 0
MAT[ MAT[,1] == 0, ]
table( MAT[ MAT[,1] == 0, ] )
这将为您提供以下行:
which(MAT[,1]==0 & MAT[,2]==1)
其中的
长度
是该模式出现的次数。这将为您提供以下行:
which(MAT[,1]==0 & MAT[,2]==1)
其中的
长度
是该模式出现的次数。您可以使用表
:
table(MAT[,2]==1 & MAT[,1]==0)
FALSE TRUE
4 1
您可以使用
表
:
table(MAT[,2]==1 & MAT[,1]==0)
FALSE TRUE
4 1
应用(MAT,1,函数(x)x[1]==0和x[2]==1)
应用(MAT,1,函数(x)x[1]==0和x[2]==1)