Le tre risposte più votate hanno un punto debole.
Se il tuo frame di dati è simile a questo
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
allora è una soluzione scadente da usare
> df2[,c(1,3,2,4)]
Fa il lavoro, ma hai appena introdotto una dipendenza dall'ordine delle colonne nel tuo input.
Questo stile di programmazione fragile deve essere evitato.
La denominazione esplicita delle colonne è una soluzione migliore
data[,c("Time", "Out", "In", "Files")]
Inoltre, se hai intenzione di riutilizzare il tuo codice in un'impostazione più generale, puoi semplicemente
out.column.name <- "Out"
in.column.name <- "In"
data[,c("Time", out.column.name, in.column.name, "Files")]
che è anche abbastanza bello perché isola completamente i letterali. Al contrario, se usi dplyr'sselect
data <- data %>% select(Time, out, In, Files)
allora imposteresti quelli che leggeranno il tuo codice in seguito, incluso te stesso, per un po 'di inganno. I nomi delle colonne vengono utilizzati come letterali senza apparire nel codice in quanto tale.
help(Extract)
noto anche come?'['