2017-04-17 1 views
2

Dieser Link beantwortet einen Teil meiner Frage: How to randomize (or permute) a dataframe rowwise and columnwise?.R: Shuffle Datenfeld spaltenweise

> df1 
    a b c 
1 1 1 0 
2 1 0 0 
3 0 1 0 
4 0 0 0 

Column-weise Shuffle gibt mir unten Ausgang df3, die die Spalten Nachbestellung ist

> df3 <- df1[,sample(ncol(df1))] 
> df3 
    c a b 
1 0 1 1 
2 0 1 0 
3 0 0 1 
4 0 0 0 

Was ich will, ist, dass die Spaltennamen als auch ändern sollte. Die zeilenweise und spaltenweise Summe bleibt gleich, nur die Spaltennamen werden neu zugewiesen. So etwas wie df4. Wie kann ich das erreichen?

> df4 
    c a b 
1 1 1 0 
2 1 0 0 
3 0 1 0 
4 0 0 0 

PS: Wie halte ich die df in seiner Form Reihen durch Spalte? Wenn ich die Frage posten, bricht die Formatierung zusammen.

Antwort

3

Sie möchten vielleicht nur die Spaltennamen abtasten. Etwas wie:

names(df) <- names(df)[sample(ncol(df))] 
+0

Vielen Dank! Es war eine großartige und schnelle Hilfe. @P Lapointe, könnten Sie mir bitte in die richtige Richtung für die Formatierung von df zeigen? – Rav

+0

@Rav Obwohl Sie einen anderen Benutzer markiert haben, was meinen Sie mit Ihrer Frage? – 989

+1

@P Lapointe bearbeitet meine Frage, um das DF in das richtige Format zu bringen. Bitte sehen Sie meinen PS-Kommentar. Ich wollte es nur wissen, also wiederhole ich das nicht noch einmal. – Rav