1

次のリストがあります。

l=list("home car train", "remote TV helicopter", "grenade hello")

私の目標は、リストの各項目の単語をアルファベット順に設定することです。つまり、この場合に要求される結果は次のようになります。

"car home train", "helicopter TV remote", "hello grenade"

最初に、各文字列の単語を区切るためにstrsplitを使用しました。

l2<-lapply(l,function(x){as.character(sort(unlist(strsplit(as.character(x), "\\ "))))})

このステップの後、各アイテムの異なるソートされた値を要求されたリスト形式に連結する方法がわかりません。(貼り付け機能で今のところ運が悪い)

4

1 に答える 1

8

単語を分割し、並べ替えて貼り付けます

lapply(strsplit(unlist(l), " "),
       function(x) paste(sort(x), collapse=" "))

出力

[[1]]
[1] "car home train"

[[2]]
[1] "helicopter remote TV"

[[3]]
[1] "grenade hello"

で必要な、リストから文字ベクトルへのunlist(l)変換に使用します。lstrsplit

strsplitは、各要素が の要素内の単語のベクトルであるリストを出力しますlsort各ベクトル、次にpasteを設定してすべての要素をまとめますcollapse=" "

于 2013-10-24T13:20:51.367 に答える