Die drei am besten bewerteten Antworten haben eine Schwäche.
Wenn Ihr Datenrahmen so aussieht
df <- data.frame(Time=c(1,2), In=c(2,3), Out=c(3,4), Files=c(4,5))
> df
Time In Out Files
1 1 2 3 4
2 2 3 4 5
dann ist es eine schlechte Lösung zu verwenden
> df2[,c(1,3,2,4)]
Es macht den Job, aber Sie haben gerade eine Abhängigkeit von der Reihenfolge der Spalten in Ihrer Eingabe eingeführt.
Diese Art der spröden Programmierung ist zu vermeiden.
Die explizite Benennung der Spalten ist eine bessere Lösung
data[,c("Time", "Out", "In", "Files")]
Wenn Sie beabsichtigen, Ihren Code in einer allgemeineren Einstellung wiederzuverwenden, können Sie dies einfach tun
out.column.name <- "Out"
in.column.name <- "In"
data[,c("Time", out.column.name, in.column.name, "Files")]
Das ist auch sehr schön, weil es Literale vollständig isoliert. Im Gegensatz dazu, wenn Sie dplyr's verwendenselect
data <- data %>% select(Time, out, In, Files)
Dann würden Sie diejenigen einrichten, die Ihren Code später lesen, auch Sie selbst, für eine kleine Täuschung. Die Spaltennamen werden als Literale verwendet, ohne im Code als solcher zu erscheinen.
help(Extract)
auch bekannt als?'['