Auswählen von Spalten im R-Datenrahmen basierend auf den * nicht * in einem Vektor
Es ist mir vertraut, Spalten aus einem R-Datenrahmen (oder einer R-Matrix) wie folgt zu extrahieren:
df.2 <- df[, c("name1", "name2", "name3")]
Aber kann man a!
oder ein anderes Werkzeug zur Auswahlalle außer diesen aufgelisteten Spalten?
Als Hintergrund habe ich einen Datenrahmen mit einigen Spaltenvektoren und möchte Folgendes vermeiden:
Tippe die Mehrheit der Namen aus, wenn ich nur eine Minderheit entfernen konnteMit dem viel kürzerendf.2 <- df[, c(1,3,5)]
Denn wenn sich meine CSV-Datei ändert, geht mein Code schief, da die Nummerierung nicht mehr dieselbe ist. Ich bin neu in R und denke, ich habe auf die harte Tour gelernt, keine Zahlenvektoren für größere DFs zu verwenden, die sich ändern könnten.Ich habe es versucht:
df.2 <- df[, !c("name1", "name2", "name3")]
df.2 <- df[, !=c("name1", "name2", "name3")]
Und als ich das schrieb, stellte ich fest, dass das funktioniert:
df.2 <- df[, !names(df) %in% c("name1", "name2", "name3")]
Gibt es einen besseren Weg als diesen letzten?