Te trzy najlepiej ocenione odpowiedzi mają słabość.
Jeśli twoja ramka danych wygląda tak
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
to jest kiepskie rozwiązanie do użycia
> df2[,c(1,3,2,4)]
Wykonuje zadanie, ale właśnie wprowadziłeś zależność od kolejności kolumn w danych wejściowych.
Tego stylu łamliwego programowania należy unikać.
Wyraźne nazewnictwo kolumn jest lepszym rozwiązaniem
data[,c("Time", "Out", "In", "Files")]
Ponadto, jeśli zamierzasz ponownie użyć kodu w bardziej ogólnym ustawieniu, możesz po prostu
out.column.name <- "Out"
in.column.name <- "In"
data[,c("Time", out.column.name, in.column.name, "Files")]
co jest również całkiem miłe, ponieważ w pełni izoluje literały. Natomiast jeśli używasz dplyr'sselect
data <- data %>% select(Time, out, In, Files)
wtedy powinieneś ustawić tych, którzy będą czytać Twój kod później, łącznie z tobą, dla trochę oszustwa. Nazwy kolumn są używane jako literały, ale nie pojawiają się w kodzie jako takim.
help(Extract)
znany również jako?'['