Cómo se modificaría esta entrada (con la secuencia: tiempo, entrada, salida, archivos):
Time In Out Files
1 2 3 4
2 3 4 5
¿A esta salida (con la secuencia: tiempo, salida, entrada, archivos)?
Time Out In Files
1 3 2 4
2 4 3 5
Aquí'están los datos ficticios de R:
table <- data.frame(Time=c(1,2), In=c(2,3), Out=c(3,4), Files=c(4,5))
table
## Time In Out Files
##1 1 2 3 4
##2 2 3 4 5
Tu dataframe tiene cuatro columnas así df[,c(1,2,3,4)]
.
Observe que la primera coma significa mantener todas las filas, y el 1,2,3,4 se refiere a las columnas.
Para cambiar el orden como en la pregunta anterior haz df2[,c(1,3,2,4)]
.
Si quieres imprimir este archivo como un csv, haz write.csv(df2, file="somedf.csv")
.
También puede utilizar la función de subconjunto:
data <- subset(data, select=c(3,2,1))
Es mejor que utilices el operador [] como en las otras respuestas, pero puede ser útil saber que puedes hacer un subconjunto y una operación de reordenación de columnas en un solo comando.
Actualizar:
También puedes utilizar la función select del paquete dplyr:
data = data %>% select(Time, out, In, Files)
No estoy seguro de la eficiencia, pero gracias a la sintaxis de dplyr'esta solución debería ser más flexible, especialmente si tienes muchas columnas. Por ejemplo, lo siguiente reordenará las columnas del conjunto de datos mtcars en el orden inverso:
mtcars %>% select(carb:mpg)
Y lo siguiente reordenará sólo algunas columnas, y descartará otras:
mtcars %>% select(mpg:disp, hp, wt, gear:qsec, starts_with('carb'))
Leer más sobre dplyr's sintaxis de selección.