r - 寻找替换列表中字符向量元素的方法

标签 r list lapply

我有一个不同长度的字符向量列表,其中包含标识符(例如“011”或“12”)、指示金额的数字(“112.3”或“490.5”)和年份(“2011”或“2020")、空元素 ("") 和仅包含点 (".") 的元素。我想删除仅包含点或空的字符向量元素。标识符的前导零很重要,因此我无法将类型更改为数字。

此原始数据

l <- list(c("2015","2016"),c(""),c("."), c("0","2418.9","292.4"),c("2",".",".","2394.6"),c("011","","934.0","1200.7"))

应该看起来像这样:

l_final <- list(c("2015","2016"),c("0","2418.9","292.4"),c("2","2394.6"),c("011","934.0","1200.7"))

我的想法是创建一个包含 TRUE/FALSE 的列表,指示每个向量要保留哪些元素,但现在我真的陷入困境,因为以下方法不起作用(它返回零整数):

test <- lapply(list, function(i) {unlist(lapply(list[i], function(b) which(b==".")))})

关于“.”的表达式,我已经尝试过其他正则表达式,例如“\.”和“[.]”。

最佳答案

我们可以循环列表,对不是.""Filter的元素进行子集化取出空列表元素

Filter(length, lapply(list, function(x) x[! x %in% c(".", "")]))

-输出

[[1]]
[1] "2015" "2016"

[[2]]
[1] "0"      "2418.9" "292.4" 

[[3]]
[1] "2"      "2394.6"

关于r - 寻找替换列表中字符向量元素的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75150690/

相关文章:

python - 如何遍历 Python 中的元组列表?

r - 如何分别格式化每个 ggplot 面板的轴刻度标签?

r - 使用 Sparklyr 在 R 中选择 N 行

python - 如何将 Python 列表列表的所有值设置为特定值?

python - 有效地在python关联列表中查找元素

r - 尝试理解这段代码加法器[[1]](5)

r - 如何在r中的许多数据帧中的列上循环函数

r - 如何将 attr<- 与 lapply 一起使用?

r - OpenBUGS : missing value in Bernoulli distribution

r - 列表中所有可能的组合