Αφήστε τις στήλες του πλαισίου δεδομένων με βάση το όνομα

Έχω έναν αριθμό στηλών που θα ήθελα να αφαιρέσω από ένα πλαίσιο δεδομένων. Γνωρίζω ότι μπορούμε να τις διαγράψουμε μεμονωμένα χρησιμοποιώντας κάτι σαν: "Η διαγραφή των στηλών είναι πολύ σημαντική:

df$x <- NULL

Αλλά ήλπιζα να το κάνω αυτό με λιγότερες εντολές.

Επίσης, γνωρίζω ότι θα μπορούσα να ρίξω στήλες χρησιμοποιώντας ακέραιο δείκτη όπως αυτό:

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

Αλλά ανησυχώ ότι η σχετική θέση των μεταβλητών μου μπορεί να αλλάξει.

Δεδομένου του πόσο ισχυρό είναι το R, σκέφτηκα ότι μπορεί να υπάρχει καλύτερος τρόπος από το να ρίχνω κάθε στήλη μία προς μία.

Λύση

Μπορείτε να χρησιμοποιήσετε μια απλή λίστα ονομάτων :


DF 
Σχόλια (6)

Υπάρχει επίσης η εντολή subset, χρήσιμη αν γνωρίζετε ποιες στήλες θέλετε:


df 
Σχόλια (10)

Θα μπορούσατε να χρησιμοποιήσετε το %in% ως εξής:

df[, !(colnames(df) %in% c("x","bar","foo"))]
Σχόλια (3)