删除R

时间:2016-10-25 03:57:57

标签: r regex lapply

我有很长的单词列表,其中一些是空字符串。这是列表的一部分。

17`[[95]]
[1] "while"     ""          "however"   ""          "the"       "right"                 "is"        "unsettled"
[9] ""          "we"        "have"      "avoided"   "changing"  "the"          "state"

17`[[96]]
[1] "of"            "things"        "by"            "taking"        "new"            "posts"        
[7] "or"            "strengthening" "ourselves"     "in"            "the"           "disputed" 

我试图摆脱列表中每个元素的空字符串。我不知道如何使用正则表达式来做到这一点,并且不能解释为什么以下lapply也不起作用:

new_list = lapply(list, function(x) x = x[x != ""])

你能帮忙纠正一下代码吗?另外,你知道如何使用正则表达式吗?感谢。

1 个答案:

答案 0 :(得分:1)

我们可以使用grep

lapply(list, function(x) lapply(x, grep, pattern = "^$", value = TRUE, invert = TRUE))

或者@thelatemail提到可以使用递归申请(rapply

rapply(list, grep, pattern = "^$", value = TRUE, invert= TRUE, how = "list")