Kā varētu mainīt šo ievadi (ar secību: time, in, out, files):
Time In Out Files
1 2 3 4
2 3 4 5
uz šo izvades rezultātu (ar secību: time, out, in, files)?
Time Out In Files
1 3 2 4
2 4 3 5
Šeit ir fiktīvie R dati:
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
Jūsu datu rāmī ir četras kolonnas, piemēram, df[,c(1,2,3,4)]
.
Ievērojiet, ka pirmais komats nozīmē saglabāt visas rindas, bet 1,2,3,4 attiecas uz kolonnām.
Lai mainītu secību, kā iepriekšējā jautājumā, veiciet df2[,c(1,3,2,4)]
.
Ja vēlaties šo failu izvadīt kā csv, izpildiet write.csv(df2, file="somedf.csv")
.
Varat izmantot arī funkciju apakškopa:
data <- subset(data, select=c(3,2,1))
Labāk būtu izmantot operatoru [], kā tas ir citās atbildēs, taču var būt noderīgi zināt, ka ar vienu komandu var veikt apakšgrupas un kolonnas sakārtošanas operāciju.
Atjaunināt:
Jūs varat izmantot arī funkciju select no paketes dplyr:
data = data %>% select(Time, out, In, Files)
Neesmu pārliecināts par efektivitāti, bet, pateicoties dplyr sintaksei, šim risinājumam vajadzētu būt elastīgākam, īpaši, ja jums ir daudz kolonnu. Piemēram, sekojošais mainīs mtcars datu kopas kolonnu secību pretējā secībā:
mtcars %>% select(carb:mpg)
Un šādi tiks pārkārtotas tikai dažas kolonnas, bet pārējās atmetīs:
mtcars %>% select(mpg:disp, hp, wt, gear:qsec, starts_with('carb'))
Vairāk par dplyr's select sintaksi.