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

R语言如何通过循环对多个dataframe应用unique函数输出统一统计结果

R 批量统计多个数据框首列唯一值数量实现方案

以下两种实现方案都可以满足批量处理需求,支持任意数量的数据框输入,不需要逐行写统计逻辑。

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

# 1. 匹配所有命名规则为df+数字的目标数据框,如果你有自定义命名的 data.frame 可以直接手动构造这个向量,比如 df_list <- c("mydf1","mydf2","testdf")
df_list <- ls(pattern = "^df\\d+$")

# 2. 批量计算每个数据框第一列的唯一值数量
unique_counts <- sapply(df_list, function(x) {
  length(unique(get(x)[, 1]))
})

# 3. 转换为你需要的输出格式
output <- data.frame(
  Index = "Unique.ID",
  t(unique_counts),
  row.names = NULL
)

# 查看结果
print(output)

运行后输出和你预期的格式完全一致:

Index df1 df2
1 Unique.ID   7  10

tidyverse 实现(语法更简洁)

如果你习惯使用tidyverse生态工具,可以用purrr包实现:

library(purrr)
library(tibble)

# 匹配目标数据框
df_names <- ls(pattern = "^df\\d+$")

# 批量计算并按列拼接结果
count_df <- map_dfc(set_names(df_names), ~length(unique(get(.x)[,1])))

# 增加Index列得到最终结果
output <- add_column(count_df, Index = "Unique.ID", .before = 1)

自定义调整说明

  • 如果你的数据框不是以df+数字规则命名,只需要修改第一步的df_list/df_names向量,把你需要处理的所有数据框的对象名以字符串形式放入向量即可。
  • 如果需要统计的不是第一列,把代码里的[,1]替换为对应列的索引或者列名字符串,比如[,"Bird_ID"]即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:36:03