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?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage