R语言中如何按行数对dataframe列表进行子集筛选
R列表dataframe按行数过滤方案
以下两种方法都可以实现按行数阈值筛选列表中的dataframe,你可以根据自己的使用习惯选择:
方法1:基础R实现(无需加载第三方包)
直接使用内置的Filter函数结合行数判断逻辑即可,针对你的示例,筛选行数大于1的dataframe代码如下:
# 阈值n可自行修改 n <- 1 filtered_list <- Filter(function(df) nrow(df) > n, my.list)
方法2:tidyverse生态purrr包实现
如果你日常使用tidyverse系列工具,用purrr::keep写法更简洁直观:
library(purrr) n <- 1 filtered_list <- keep(my.list, ~ nrow(.x) > n)
如果需要反向剔除不符合要求的元素,也可以用对应的discard函数:
filtered_list <- discard(my.list, ~ nrow(.x) <= n)
结果验证
执行完筛选后可以用以下代码验证每个元素的行数是否符合预期:
sapply(filtered_list, nrow) # 你的示例中输出为 3 3,对应d1、d3的行数,符合筛选要求
内容的提问来源于stack exchange,提问作者ML33M
相关产品推荐
相关产品推荐

