2016-07-07 7 views
-2

Sagen wir, ich habe eine Liste bestehend aus einer Reihe von ganzen Zahlen von 1-10 mit Wiederholung und ich möchte alle 0 aus dieser Liste entfernen, gibt es eine einfache Möglichkeit, das zu tun?Wie kann ein Element aus einer Liste in R entfernt werden?

Etwas wie na.omit aber für meine Wahl der Elemente?

+1

Reproduzierbares Beispiel? – Sotos

+0

'x [x == 0] <- NA' dann benutze na.omit. Oder vielleicht 'x [x! = 0]'. – zx8754

+0

@Laterow, ich glaube nicht, dass es ein Duplikat ist, da diese Frage darauf abzielt, eine "Liste" – loki

Antwort

1

, da Sie ein Beispiel nicht vorsah erstelle ich eine Liste ls

ls <- list(rep(0:10, 10)) 

lsnew <- ls[[1]][ls[[1]] != 0] 

Es sollte erwähnt werden, dass lsnew ist ein numerischer Vektor, keine Liste!

Dies ist ein einfaches Beispiel für subsetting in R. Für weitere Informationen zu den verschiedenen Datenstrukturen subsetting beziehen sich auf:

+0

Welches Paket gehört dazu? Ich schaute in Hilfe und konnte es nicht finden. – Qwertford

+0

Dies ist Basis R. Sie benötigen keine Pakete für Listen. Einige Details zu subsetting [hier] (http://adv-r.had.co.nz/Subsetting.html) – loki

+0

Wo kann ich lernen, diese eckigen Klammern zu verwenden? Ich habe sie noch nie zuvor gesehen und verstehe es nicht. was du geschrieben hast. – Qwertford

1

erstreckt @ lokis Antwort können Sie auch mehr als ein Element ausschließen

ls <- list(rep(0:10, 10)) 

#excluding 0 
lsnew <- ls[[1]][which(ls[[1]] != 0)] 

#excluding 0 & 1 
lsnew <- ls[[1]][! ls[[1]] %in% c(0,1)] 
+0

Ich verallgemeinere den Ausschluss von mehr als einem Element. Ich habe meine Antwort bearbeitet, um zu reflektieren, dass "was" nicht benötigt wird. – Latrunculia

Verwandte Themen