Der Titel könnte ein wenig verwirrend erscheinen, so lassen Sie mich sehen, ob ich mit einem kleinen Beispiel klären kann:R: Datenrahmen aufgeteilt und um Spalte nach einer anderen Spalte
ich einen Datenrahmen habe mit 3 Spalten, die wie dieses
col1 col2 col3
1 A,D,C sd,dg,ds 5,26,1
2 D,F fh,we 85,41
3 H hr 27
4 C,A,D ds,sd,dg 235,65,3
5 Q,G,J rt,gh,we 34,98,65
ich mag jedes Element von col1 alphabetisch ordnen und dann jedes Element col2 bestellen und col3 nach der Reihenfolge, in col1, dies zu erhalten:
col1 col2 col3
1 A,C,D sd,ds,dg 5,1,26
2 D,F fh,we 85,41
3 H hr 27
4 A,C,D sd,ds,dg 65,235,3
5 G,J,Q gh,we,rt 98,65,34
Es ist wichtige Ursache später möchte ich von col1 aggregieren, und ich brauche Elemente 1 und 4 im Beispiel gleich zu sein (A, C, D)
Bisher bin ich hier fest:
MWE
my.df <- data.frame(col1=c('A,D,C','D,F','H','C,A,D','Q,G,J'), col2=c('sd,dg,ds','fh,we','hr','ds,sd,dg','rt,gh,we'), col3=c('5,26,1','85,41','27','235,65,3','34,98,65'))
my.df
my.df$col1 <- sapply(sapply(strsplit(as.character(my.df$col1), ','), sort), paste, collapse=',')
my.df
Jede Hilfe wird geschätzt !! Vielen Dank!!
Wirklich elegant, eine Schleife besser vermeiden! – DaniCee