2017-07-11 9 views
1

I von Vektor k wieeine Reihe von Index löschen, wenn keine Zeilen abgestimmt sind

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

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

Hier eine Reihe von Matrix x indiziert löschen möchten, keine Zeilen meine Bedingung erfüllen zu fallen, k == 0, so index wird Geben Sie den leeren Vektor integer(0) zurück. Daher wird x[-index, ] eine Matrix ohne Zeilen zurückgeben, anstatt selbst zu bleiben.

Ich weiß nicht, wie man damit umgeht, bitte könnte mir jemand dabei helfen?

+0

Mögliche Duplikat (https://stackoverflow.com/questions/12328056/how-do-i-delete-rows-in-a-data-frame) – Nash

+1

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

+1

'if (length (index) == 0) {y <- x} else {y <- x [-index]}' – CPak

Antwort

0

Die einzige Komplikation könnte k's Größe sein. Ansonsten sollte es lösen: gegeben x als: [? Wie kann ich Zeilen in einem Datenrahmen löschen]

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

und

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

dann

x[!k==0,] 
Verwandte Themen