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

如何遍历R环境中所有数据框并找出无数据的对象名称

解决方案

可以通过以下方式实现自动遍历并检查空数据框:

基础循环写法

直接遍历全局环境中的所有对象,筛选出数据框类型且行数为0的对象名称:

get_empty_dataframes <- function() {
  # 获取全局环境的所有对象名称
  all_objs <- ls(envir = .GlobalEnv)
  empty_df_names <- c()
  
  for (name in all_objs) {
    current_obj <- get(name, envir = .GlobalEnv)
    # 判定是否为数据框且行数为0
    if (is.data.frame(current_obj) && nrow(current_obj) == 0) {
      empty_df_names <- c(empty_df_names, name)
    }
  }
  
  return(empty_df_names)
}

调用函数即可得到结果:

get_empty_dataframes()

简洁的purrr风格写法

如果习惯使用tidyverse工具链,也可以用purrr包简化代码:

library(purrr)

get_empty_dataframes <- function() {
  ls(.GlobalEnv) %>%
    map(get) %>%
    set_names(ls(.GlobalEnv)) %>%
    keep(~is.data.frame(.) && nrow(.) == 0) %>%
    names()
}

关键说明

  • ls(envir = .GlobalEnv):获取全局环境下的所有对象名称
  • get(name):根据对象名称调取对应的实际对象
  • is.data.frame():确保只检查数据框类型的对象
  • nrow(.) == 0:判断数据框是否无观测数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 07:29:50