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

R语言中如何根据列数筛选列表,仅保留15列的数据框

R语言筛选列表中列数为15的数据框操作方法

假设你存储多个数据框的原始列表名为original_list,可以通过以下几种常用方式完成筛选:

基础R实现(无需安装额外包)

方法1:使用Filter函数

直接通过Filter批量筛选符合条件的列表元素:

filtered_list <- Filter(function(df) ncol(df) == 15, original_list)

方法2:逻辑索引筛选

先计算每个列表元素的列数,再通过索引取子集:

# 统计每个数据框的列数
col_count <- sapply(original_list, ncol)
# 筛选列数等于15的元素
filtered_list <- original_list[col_count == 15]

tidyverse生态(purrr包)实现

如果你习惯使用tidyverse系列工具,可以用purrr的keep函数完成筛选:

# 加载purrr包(若已安装tidyverse可直接加载tidyverse)
library(purrr)

filtered_list <- keep(original_list, ~ ncol(.x) == 15)

兜底兼容方案

如果列表中可能存在非数据框类型的元素,为避免ncol报错,可以在判断条件中增加数据框类型校验:

# 基础R版本
filtered_list <- Filter(function(x) is.data.frame(x) && ncol(x) == 15, original_list)

# purrr版本
filtered_list <- keep(original_list, ~ is.data.frame(.x) && ncol(.x) == 15)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:27:01