我有以下列表。
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), "\\ "))))})
在此步骤之后,我不确定如何将每个项目的不同排序值连接到请求的列表格式。 (到目前为止,粘贴功能没有运气)
答案 0 :(得分: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=" "
将所有元素放在一起。