我想知道是否有任何方法可以从列表中删除空格。
据我搜索,我发现有很多问答可以删除
列表中的整个元素,但找不到关于
元素的特定组件。
具体来说,我现在使用的列表如下所示:
[[1]]
[1] "1" "" "" "2" "" "" "3"
[[2]]
[1] "weak"
[[3]]
[1] "22" "33"
[[4]]
[1] "44" "34p" "45"
从上面,你可以找到“”,它应该被删除。
我试过不同的命令,比如
text.words.bl <- text.words.ll[-which(text.words.ll==" ")]
text.words.bl <- text.words.ll[!sapply(text.words.ll, is.null)]
等等,但似乎列表的 [[1]] 中的 ""s 仍然存在。
是否不可能对列表的每个元素中的小块应用命令?
(例如分别为 1、2、弱、22、33...)
我使用了“lapply”函数来对每个元素运行特定的命令,
看起来那些 lapply 命令都有效......
杰伊
最佳答案
使用 %in%
,但用 !
否定它:
## Sample data:
L <- list(c(1, 2, "", "", 4), c(1, "", "", 2), c("", "", 3))
L
# [[1]]
# [1] "1" "2" "" "" "4"
#
# [[2]]
# [1] "1" "" "" "2"
#
# [[3]]
# [1] "" "" "3"
更换:
lapply(L, function(x) x[!x %in% ""])
# [[1]]
# [1] "1" "2" "4"
#
# [[2]]
# [1] "1" "2"
#
# [[3]]
# [1] "3"
显然,如果要覆盖原始数据集,请将输出分配给“L”:
L[] <- lapply(L, function(x) x[!x %in% ""])
关于R:从列表中删除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29144759/