【发布时间】:2016-05-26 04:36:20
【问题描述】:
标题可能看起来有点混乱,所以让我看看我是否可以用一个小例子来澄清一下:
我有一个包含 3 列的数据框,看起来像这样
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
我想按字母顺序排列col1的每个元素,然后按照col1中的顺序排列col2和col3的每个元素,得到这个:
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
这很重要,因为稍后我想按 col1 进行聚合,并且我需要示例中的元素 1 和 4 相等(A,C,D)
到目前为止,我被困在这里:
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
任何帮助表示赞赏!谢谢!!
【问题讨论】: