Les trois réponses les mieux notées ont une faiblesse.
Si votre trame de données ressemble à ceci
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
alors c'est une mauvaise solution à utiliser
> df2[,c(1,3,2,4)]
Il fait l'affaire, mais vous venez d'introduire une dépendance sur l'ordre des colonnes dans votre entrée.
Ce style de programmation fragile est à éviter.
La dénomination explicite des colonnes est une meilleure solution
data[,c("Time", "Out", "In", "Files")]
De plus, si vous avez l'intention de réutiliser votre code dans un cadre plus général, vous pouvez simplement
out.column.name <- "Out"
in.column.name <- "In"
data[,c("Time", out.column.name, in.column.name, "Files")]
ce qui est également très agréable car il isole complètement les littéraux. En revanche, si vous utilisez dplyr'sselect
data <- data %>% select(Time, out, In, Files)
alors vous mettriez en place ceux qui liront votre code plus tard, vous y compris, pour un peu de tromperie. Les noms de colonne sont utilisés comme littéraux sans apparaître dans le code en tant que tels.
help(Extract)
également connu sous le nom de?'['