2017-07-11 68 views
1

我想k通过索引中删除一行时没有行匹配

x = matrix(1:10, 5, 2) 
k = rep(1, 5) 

# my attempt: 
index = which(k == 0) 
y = x[-index, ] 
#  [,1] [,2] 

在这里,没有行符合我的条件下降,k == 0删除由向量索引矩阵x的一排,所以index会返回空矢量,integer(0)。因此,x[-index, ]将返回一个没有行的矩阵,而不是保持其自身。

我不知道如何处理这个问题,请有人可以帮我解决这个问题?

+0

的可能的复制( https://stackoverflow.com/questions/12328056/how-do-i-delete-rows-in-a-data-frame) – Nash

+1

'y < - x [k!= 0,]'? – Axeman

+1

'如果(长度(索引)== 0){y <-x} else {y <-x [-index]}' – CPak

回答

0

唯一的并发症可能是k的大小。 否则这应该解决这个问题: 定x为:?如何在数据帧中删除行]

x=cbind(c(1,2,3,4,5,6),c(1,2,3,4,5,6)) 

k=c(1,2,0,1,0,2) 

然后

x[!k==0,]