2017-10-13 3 views
1

Ein Datenrahmen, der unter Verwendung der Object Spalte randomisiert und sortiert wird, wird unten als ein Beispiel gezeigt. Die order wird nur auf sample angewendet, um ähnliche Objekte zusammen zu organisieren. Ist es möglich, die Operation order zu vermeiden und eine Randomisierung innerhalb der sich wiederholenden Spalte Object zu erreichen? Vielen Dank.Randomisieren eines Datenrahmens in r

set.seed(7) 
# read csv 
df <- read.csv("~/Documents/test.csv", header = T) 
df 
    Object Tag Comment 
1   1 A  C1 
2   1 B  C2 
3   1 C  C3 
4   1 D  C4 
5   2 A  A1 
6   2 C  A2 
7   2 F  A3 
8   2 G  A4 
9   3 P  C1 
10  3 N  A1 
11  3 P  B5 
# randomize the order of the df 
dfr <- df[sample(nrow(df)),] 
dfr 
    Object Tag Comment 
11  3 P  B5 
4  1 D  C4 
2  1 B  C2 
1  1 A  C1 
9  3 P  C1 
5  2 A  A1 
7  2 F  A3 
10  3 N  A1 
8  2 G  A4 
3  1 C  C3 
6  2 C  A2 
#sort dfr using Object field 
dfrSort <- dfr[with(dfr, order(Object)), ] 
dfrSort 
    Object Tag Comment 
4   1 D  C4 
2   1 B  C2 
1   1 A  C1 
3   1 C  C3 
5   2 A  A1 
7   2 F  A3 
8   2 G  A4 
6   2 C  A2 
11  3 P  B5 
9   3 P  C1 
10  3 N  A1 

Antwort

1

Nach Gruppierung von ‚Objekt‘ tut das sample ing nicht die Bande zu brechen

library(dplyr) 
df %>% 
    group_by(Object) %>% 
    slice(sample(row_number())) 
# A tibble: 11 x 3 
# Groups: Object [3] 
# Object Tag Comment 
# <int> <chr> <chr> 
# 1  1  C  C3 
# 2  1  B  C2 
# 3  1  A  C1 
# 4  1  D  C4 
# 5  2  C  A2 
# 6  2  F  A3 
# 7  2  G  A4 
# 8  2  A  A1 
# 9  3  P  B5 
#10  3  P  C1 
#11  3  N  A1 
+0

Danke, aber die letzten zwei Spalten sollten randomisieren zusammen (paarweise), wie im Beispiel gezeigt. Für "Objekt 1 Tag D" sollte immer gepaart werden mit "Kommentar C4", und so weiter, wenn gemischt. Das gleiche gilt für die anderen 'Objekt's. – deepseefan

+0

Ich glaube es ist. Einfügen von meiner Frage "Die Reihenfolge wird nur auf' sample' angewendet, um ähnliche Objekte zusammen zu organisieren. Wird es möglich sein, die 'order' Operation zu vermeiden und Randomisierung in der wiederholenden Objektspalte zu erreichen?" – deepseefan

+0

Ist das nicht der Zweck des Gebens? ein Beispiel mit Beispielausgabe erforderlich? – deepseefan

Verwandte Themen