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

如何在base R中使用for-loop统计data frame各列unique值数量

R数据框逐列唯一值统计实现(for循环版)

约束适配说明

  • 全流程仅使用base R原生功能,无第三方包依赖
  • 未调用n_distinct函数
  • 未使用任何apply系列函数(apply/lapply/sapply/vapply/mapply等)
  • 核心统计逻辑完全基于for循环编写
  • 兼容数值、整数、字符、因子、逻辑等所有类型列,不存在类型适配问题

实现代码

# 请将代码中的df替换为你自己的目标数据框
# 初始化存储统计结果的命名向量,自动匹配数据框原始列名
unique_count <- setNames(integer(ncol(df)), colnames(df))

# 逐列遍历统计唯一值数量
for (col_idx in seq_along(df)) {
  # 默认统计规则:NA会被计为1个独立唯一值
  unique_count[col_idx] <- length(unique(df[[col_idx]]))
}

# 打印输出结果:返回值为命名向量,名称对应原始列名,值为对应列的唯一值个数
print(unique_count)

可选规则调整:如果不需要把NA计入唯一值统计,把循环内的统计行替换为unique_count[col_idx] <- length(unique(df[[col_idx]][!is.na(df[[col_idx]])]))即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 06:03:18