重新创建数据:
a <- array(c(1,0,0,0,1,0,1,1,0,0,0,1,0,1,0), dim=c(5,3))
现在创建一个等于条件的向量。
cond <- c(1, 0, 0)
接下来,apply
包含在调用中的语句which
将告诉您哪些行符合您的条件
which(apply(a, 1, function(x)all(x==cond)))
1] 1 5
最后,提取满足此条件的行:
x <- which(apply(a, 1, function(x)all(x==cond)))
a[x, ]
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 1 0 0
结果数组不包含太多信息。也许您想知道有多少行符合条件?
length(x)
[1] 2
回答后续问题。数组很大时如何创建条件向量?
好吧,一种方法如下。假设您有一个 100 列宽的数组,因此您需要一个长度为 100 的向量,并且您希望第三个元素为 1:
cond <- rep(0, 100)
cond[3] <- 1
cond
[1] 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0