2017-11-16 7 views
0

データフレームがあり、データフレームの列の1つにこのようなコンマで区切られた項目の文字列が含まれています。R:アルファベット順の項目の文字列を並べ替えます

[1] "A, D, B, C" 
[2] "D, A, B, C" 
[3] "B, A, C, D" 
etc... 

これは

"A, B, C, D" 
"A, B, C, D" 
"A, B, C, D" 

を?:ように私は、私は次のように密接しています何かを得ることができるように、自分自身内のこれらの文字列をソートする方法はあります:

library(gtools) 
df$col <- sapply(df$col , function (x) 
    mixedsort(strsplit(paste(x, collapse = ','), ',')[[1]])) 

しかし、これは結果をリストとして出力するので、出力上でdplyrで何も操作できません(group_byなど)

答えて

1
x = c("a, b, c, d", "d, a, b, c", "b, a, c, d") 
y = unname(sapply(x, function(x) { 
    paste(sort(trimws(strsplit(x[1], ',')[[1]])), collapse=',')})) 
y 

[1] "a,b,c,d" "a,b,c,d" "a,b,c,d"

trimws()ので、ソート分割さ文字列に正しく動作する空白を削除します。 sort()はアルファベット順に並べ替えられます。 paste(..., collapse = ',')は、ソートされた文字列ベクトルを連結して単一の文字列にします。

+0

パーフェクト!ありがとう! –

関連する問題