You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中筛选嵌套列表内的所有dataframe(y<1)

保留嵌套列表结构筛选DataFrame行

你可以通过嵌套映射的方式,在保留原列表层级结构的同时,对每个DataFrame执行y < 1的行筛选操作,以下是两种可行实现方式:

方法1:使用tidyverse工具(purrr + dplyr)

先加载所需的包,再通过两层map函数遍历嵌套列表的每一层,对每个DataFrame应用filter筛选:

library(dplyr)
library(purrr)

# 执行筛选并保留嵌套结构
l_filtered <- map(l_all, ~map(.x, ~filter(.x, y < 1)))

# 查看筛选后的结果
l_filtered

运行后输出结果与你期望的一致:

[[1]]
[[1]][[1]]
[1] x y
<0 rows> (or 0-length row.names)

[[1]][[2]]
  x y
1 0 0


[[2]]
[[2]][[1]]
  x  y
1 7 -1

[[2]][[2]]
  x y
1 4 0

方法2:基础R实现

如果不想依赖tidyverse包,可以用两层lapply完成相同操作:

# 基础R版本的筛选逻辑
l_filtered_base <- lapply(l_all, function(year_group) {
  lapply(year_group, function(df) {
    df[df$y < 1, ]
  })
})

# 查看结果
l_filtered_base

该方法同样会保留原嵌套结构,输出结果与tidyverse版本完全一致。

内容的提问来源于stack exchange,提问作者abrar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:42:46