【发布时间】:2015-08-03 02:28:11
【问题描述】:
这是关于R中列表行为的更一般的问题,但具体问题是:
我有一个单词组列表,我正在尝试手动删除特定单词 - 其中没有两次提及任何单词。
目前,我正在使用这种方法
l = strsplit(c("a b", "c d"), " ")
> l
[[1]]
[1] "a" "b"
[[2]]
[1] "c" "d"
# remove the value "d"
l = lapply(l, function(x) { x[x != "d"] })
> l
[[1]]
[1] "a" "b"
[[2]]
[1] "c"
有没有更适合使用的内置列表索引方法?我觉得我应该能够在不使用lapply 的情况下解析列表。如果没有,是否有人可以解释为什么会这样?
谢谢
【问题讨论】:
-
这个问题有点不清楚。您是否愿意将第一个字符串中的 c("a", "b") 与第二个字符串中的 c("c", "d") 分开?如果没有,您可以执行 x=unlist(l),然后执行 x=x[x!="d"]。否则,您将逐个元素地进行操作,或者构建一个数据结构,在其中保存各个片段对应的字符串的信息。