Spalten des Datenrahmens nach Namen löschen

Ich habe eine Reihe von Spalten, die ich gerne aus einem Datenrahmen entfernen würde. Ich weiß, dass wir sie einzeln mit etwas wie löschen können:

df$x <- NULL

Aber ich hatte gehofft, dass ich dies mit weniger Befehlen erreichen kann.

Ich weiß auch, dass ich Spalten mit einer ganzzahligen Indizierung wie dieser löschen könnte:

df <- df[ -c(1, 3:6, 12) ]

Aber ich befürchte, dass sich die relative Position meiner Variablen ändern könnte.

In Anbetracht der Leistungsfähigkeit von R dachte ich mir, dass es vielleicht einen besseren Weg gibt, als jede Spalte einzeln fallen zu lassen.

Lösung

Sie können eine einfache Liste von Namen verwenden:


DF 
Kommentare (6)

Es gibt auch den Befehl subset, der nützlich ist, wenn Sie wissen, welche Spalten Sie benötigen:


df 
Kommentare (10)

Sie könnten %in% wie folgt verwenden:

df[, !(colnames(df) %in% c("x","bar","foo"))]
Kommentare (3)