Las tres respuestas mejor calificadas tienen una debilidad.
Si su marco de datos se ve así
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
entonces es una mala solución para usar
> df2[,c(1,3,2,4)]
Hace el trabajo, pero acaba de introducir una dependencia en el orden de las columnas en su entrada.
Este estilo de programación frágil se debe evitar.
El nombramiento explícito de las columnas es una mejor solución
data[,c("Time", "Out", "In", "Files")]
Además, si tiene la intención de reutilizar su código en una configuración más general, simplemente puede
out.column.name <- "Out"
in.column.name <- "In"
data[,c("Time", out.column.name, in.column.name, "Files")]
lo cual también es bastante bueno porque aísla por completo los literales. Por el contrario, si usa dplyr'sselect
data <- data %>% select(Time, out, In, Files)
entonces estarías configurando a aquellos que leerán tu código más tarde, incluido tú mismo, por un poco de engaño. Los nombres de columna se utilizan como literales sin aparecer en el código como tal.
help(Extract)
también conocido como?'['