我有很长的单词列表,其中一些是空字符串。这是列表的一部分。
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 != ""])
你能帮忙纠正一下代码吗?另外,你知道如何使用正则表达式吗?感谢。
答案 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")