Ako by sa dal zmeniť tento vstup (s poradím: čas, vstup, výstup, súbory):
Time In Out Files
1 2 3 4
2 3 4 5
na tento výstup (s postupnosťou: time, out, in, files)?
Time Out In Files
1 3 2 4
2 4 3 5
Tu'sú fiktívne údaje 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
Váš dátový rámec má štyri stĺpce takto df[,c(1,2,3,4)]
.
Všimnite si, že prvá čiarka znamená zachovanie všetkých riadkov a 1,2,3,4 sa vzťahuje na stĺpce.
Ak chcete zmeniť poradie ako v predchádzajúcej otázke, urobte df2[,c(1,3,2,4)]
Ak chcete tento súbor vypísať ako csv, vykonajte príkaz write.csv(df2, file="somedf.csv")
Môžete tiež použiť funkciu podmnožiny:
data <- subset(data, select=c(3,2,1))
Lepšie by bolo použiť operátor [] ako v ostatných odpovediach, ale môže byť užitočné vedieť, že v jednom príkaze môžete vykonať operáciu podmnožiny a zmenu poradia stĺpcov.
Aktualizácia:
Môžete tiež použiť funkciu select z balíka dplyr:
data = data %>% select(Time, out, In, Files)
Nie som si istý efektivitou, ale vďaka syntaxi dplyr'by malo byť toto riešenie flexibilnejšie, najmä ak máte veľa stĺpcov. Napríklad nasledujúci postup zmení poradie stĺpcov súboru údajov mtcars v opačnom poradí:
mtcars %>% select(carb:mpg)
A nasledujúci postup zmení poradie len niektorých stĺpcov a ostatné vyradí:
mtcars %>% select(mpg:disp, hp, wt, gear:qsec, starts_with('carb'))
Prečítajte si viac o dplyr's select syntax.