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

如何在R语言中统计数据框指定列的唯一观测值数量

嗨,针对你这个统计数据框指定列唯一观测值数量的需求,在R里有好几种实用的方法,我结合你给出的df数据框来演示几种常用的:

方法1:Base R 原生实现(无需额外包)

这是最直接的原生解法,先用unique()提取id列的所有唯一值,再用length()统计它们的个数:

# 你的数据框
df <- data.frame(id = c(1,1,1,2,2,2,2,3,3,5,5,5,9,9))

# 统计唯一值数量
length(unique(df$id))
# 运行后输出:5

另外还有一种用table()的方式,table()会生成列的频率统计表,统计表的长度就是唯一值的数量,结果是一样的:

length(table(df$id))
# 输出同样是:5

方法2:使用dplyr包(tidyverse生态)

如果你平时习惯用tidyverse系列的工具,dplyr里的n_distinct()函数可以一步到位,代码更简洁易读:

# 如果还没安装dplyr,先执行安装(仅需一次)
# install.packages("dplyr")

library(dplyr)

# 直接统计id列的唯一值数量
n_distinct(df$id)
# 输出:5

# 要是想把结果整合到数据框操作链里(比如用管道符),可以这么写:
df %>% 
  summarise(unique_id_count = n_distinct(id))
# 输出会是一个包含结果的小数据框:
#   unique_id_count
# 1               5

这几种方法都能精准得到你要的5这个结果,你可以根据自己的代码习惯选择合适的方式~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 19:37:27