Πώς θα μπορούσε κανείς να αλλάξει αυτή την είσοδο (με την ακολουθία: χρόνος, είσοδος, έξοδος, αρχεία):
Time In Out Files
1 2 3 4
2 3 4 5
σε αυτή την έξοδο (με την ακολουθία: time, out, in, files);
Time Out In Files
1 3 2 4
2 4 3 5
Εδώ είναι τα εικονικά δεδομένα 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
Το πλαίσιο δεδομένων σας έχει τέσσερις στήλες, όπως df[,c(1,2,3,4)]
.
Σημειώστε ότι το πρώτο κόμμα σημαίνει ότι κρατάτε όλες τις γραμμές και το 1,2,3,4 αναφέρεται στις στήλες.
Για να αλλάξετε τη σειρά όπως στην παραπάνω ερώτηση κάντε df2[,c(1,3,2,4)]
Αν θέλετε να εξάγετε αυτό το αρχείο ως csv, κάντε write.csv(df2, file="somedf.csv")
.
# reorder by column name
data <- data[c("A", "B", "C")]
#reorder by column index
data <- data[c(1,3,2)]
Μπορείτε επίσης να χρησιμοποιήσετε τη συνάρτηση υποσύνολο:
data <- subset(data, select=c(3,2,1))
Καλύτερα να χρησιμοποιήσετε τον τελεστή [] όπως και στις άλλες απαντήσεις, αλλά ίσως είναι χρήσιμο να γνωρίζετε ότι μπορείτε να κάνετε μια λειτουργία υποσυνόλου και αναδιάταξης στηλών με μία μόνο εντολή.
Ενημέρωση:
Μπορείτε επίσης να χρησιμοποιήσετε τη συνάρτηση select από το πακέτο dplyr:
data = data %>% select(Time, out, In, Files)
Δεν είμαι σίγουρος για την αποτελεσματικότητα, αλλά χάρη στη σύνταξη του dplyr'αυτή η λύση θα πρέπει να είναι πιο ευέλικτη, ειδικά αν έχετε πολλές στήλες. Για παράδειγμα, το παρακάτω θα αναδιατάξει τις στήλες του συνόλου δεδομένων mtcars με την αντίθετη σειρά:
mtcars %>% select(carb:mpg)
Και το παρακάτω θα αναδιατάξει μόνο ορισμένες στήλες και θα απορρίψει άλλες:
mtcars %>% select(mpg:disp, hp, wt, gear:qsec, starts_with('carb'))
Διαβάστε περισσότερα σχετικά με τη σύνταξη επιλογής του dplyr's.