我目前正在 R 中进行一个文本挖掘项目,其中包含一个列表列表。我想删除我的列表列表中的所有空字符串和 NA 值,但我还没有找到方法。我的数据如下所示:
x <- list(c("", "alteryx", "confirme", "", "", "", "ans", "", ""))
Run Code Online (Sandbox Code Playgroud)
主要列表引用了不同的文本。每个文本都由所有单词的列表组成。所以当我删除一个单词时,它变成了一个空字符串。我只想明确地删除它,从而减少我的文本长度。
我尝试了很多不同的东西,例如
stri_remove_empty_na(c(demande2[20]))这给了我错误Warning message:
In stri_enc_toutf8(x) : argument is not an atomic vector; coercing并将我的文本转换为:
stri_remove_empty_na的结果
所以请我需要你的帮助(我很抱歉我的英语,我是法国人:))
提前致谢
您可以使用lapply和简单的子集:
x <- list(c("", "alteryx", "confirme", "", "", "", "ans", "", ""))
lapply(x, function(z){ z[!is.na(z) & z != ""]})
[[1]]
[1] "alteryx" "confirme" "ans"
Run Code Online (Sandbox Code Playgroud)
lapply将函数应用于列表的每个组件。在这种情况下,该函数是一个简单的子集函数。