2017-07-11 67 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,]