2013-10-24 26 views
1

我有以下列表。在R中连接字符串

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), "\\ "))))}) 

这一步后,我不知道如何将每个项目的不同排序值连接成请求的列表格式。 (至今没有运气与功能)

回答

7

拆分的话,排序,粘贴到一起

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)l从列表转换为字符矢量,这是strsplit所要求的。

strsplit将输出一个列表,其中每个元素是l元素中单词的向量。每个矢量sort,然后paste通过设置collapse=" "将它的所有元素放在一起。