Como se alteraria esta entrada (com a seqüência: tempo, entrada, saída, arquivos):
Time In Out Files
1 2 3 4
2 3 4 5
A esta saída (com a seqüência: tempo, fora, dentro, arquivos)?
Time Out In Files
1 3 2 4
2 4 3 5
Aqui's os dados dummy 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
Seu dataframe tem quatro colunas como df[,c(1,2,3,4)]
.
Note que a primeira vírgula significa manter todas as linhas, e a 1,2,3,4 refere-se às colunas.
Para alterar a ordem como na pergunta acima, faça df2[,c(1,3,2,4)]
Se você quiser emitir este arquivo como um csv, faça write.csv(df2, file="somedf.csv")
Você também pode usar a função de subconjunto:
data <- subset(data, select=c(3,2,1))
Você deve usar melhor o operador [] como nas outras respostas, mas pode ser útil saber que você pode fazer um subconjunto e uma operação de reordenação de coluna em um único comando.
Atualização:
Você também pode usar a função select a partir do pacote dplyr:
data = data %>% select(Time, out, In, Files)
Não tenho certeza sobre a eficiência, mas graças à sintaxe dplyr's esta solução deveria ser mais flexível, especialmente se você tiver muitas colunas. Por exemplo, o seguinte irá reordenar as colunas do conjunto de dados do mtcars na ordem oposta:
mtcars %>% select(carb:mpg)
E o seguinte irá reordenar apenas algumas colunas, e descartar outras:
mtcars %>% select(mpg:disp, hp, wt, gear:qsec, starts_with('carb'))
Leia mais sobre dplyr's select syntax.