As três respostas mais bem avaliadas têm um ponto fraco.
Se o seu quadro de dados se parecer com isso
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
então é uma solução ruim de usar
> df2[,c(1,3,2,4)]
Ele faz o trabalho, mas você acabou de introduzir uma dependência da ordem das colunas em sua entrada.
Esse estilo de programação frágil deve ser evitado.
A nomeação explícita das colunas é uma solução melhor
data[,c("Time", "Out", "In", "Files")]
Além disso, se você pretende reutilizar seu código em uma configuração mais geral, pode simplesmente
out.column.name <- "Out"
in.column.name <- "In"
data[,c("Time", out.column.name, in.column.name, "Files")]
o que também é bastante bom porque isola completamente literais. Por outro lado, se você usar o dplyr'sselect
data <- data %>% select(Time, out, In, Files)
você configuraria aqueles que lerão seu código mais tarde, inclusive a si mesmo, para um pouco de decepção. Os nomes das colunas estão sendo usados como literais sem aparecer no código como tal.
help(Extract)
também conhecido como?'['