r - R - 使用列表中每个项目的第一个元素过滤列表
问题描述
我对 R 相当陌生,我正在尝试将数据从 PDF 解析到数据表中。我已经能够将文本解析成一个列表,但是我很难尝试从列表中过滤数据。
例如,考虑下面的示例列表:
l_vectors <- list( c("K", "10", "20"),
c("1", "30", "40"),
c("a", "b", "c"),
c("x", "y", "z"))
假设我想过滤此列表,使其仅包含以“K”或“1”开头的向量
我可以使用 map_lgl 找到一个逻辑向量,指示哪些列表项是匹配的
map_lgl(l_vectors, function(x) x[1] == "K" | x[1] == "1" )
[1] TRUE TRUE FALSE FALSE
从听到我不太确定最好的方向。我猜我想将此逻辑向量与 pluck 结合使用,但似乎无法弄清楚。任何帮助,将不胜感激!
干杯,乔纳森
解决方案
如果你想使用 baseR,你可以编写一个辅助函数,然后使用Filter
f <- function(x) x[1] %in% c("K", "1")
Filter(f, l_vectors)
#[[1]]
#[1] "K" "10" "20"
#[[2]]
#[1] "1" "30" "40"
这也可以写成
Filter(function(x) x[1] %in% c("K", "1"), l_vectors)
推荐阅读
- html - 没有图像时,如何在 vuejs 中传递带有道具的图像而不会使所有内容消失?
- javascript - 如何限制 DatePicker 在 React JS 中仅显示当前年份?
- python - 为什么这会产生一个断言错误,即使它正是所教的?
- vue.js - 如何读取firestore get()接收到的数据
- php - 如何从 MySQL 中的查询中使用其各自的数据创建手风琴?
- python - Python 递归在列表中返回 None
- java - springboot项目如何设置请求参数
- python - 删除行后 DataFrame 的长度不会改变
- javascript - 用于测验的 javascript 模态
- google-apps-script - 谷歌表单如何上传文件,然后根据提交的值将其放入新文件夹