我有一个矩阵,我想只保留那些至少有一个成员超过5的行。我的意思是那些成员都少于5的行应该被过滤掉。
例如:
2 4 6 2 1
1 2 3 1 2
5 4 7 2 1
在此矩阵中,第二行应该被过滤掉,因为它的所有成员都小于5。
这是我写的:
for(i in 1:length(matrix[,1]){
for(j in 2:17){
if(any(matrix[i,j]>=5)){matrix=matrix} else {matrix=matrix[-i,]}
}}
但它没有用。
你认为我能做什么?
答案 0 :(得分:0)
调整this ...
中的一些建议1)确定应消除哪些行:
a<- read.table(text = "2 4 6 2 1
1 2 3 1 2
5 4 7 2 1")
a
V1 V2 V3 V4 V5
[1,] 2 4 6 2 1
[2,] 1 2 3 1 2
[3,] 5 4 7 2 1
bye <- sapply(1:3, function(x){all(a[x,]<5)})
bye
[1] FALSE TRUE FALSE
2)使用它来对矩阵进行子集化:
a2 <- a[!bye,]
a2
V1 V2 V3 V4 V5
[1,] 2 4 6 2 1
[2,] 5 4 7 2 1