首页 > 解决方案 > 如何计算R中的列的唯一值

问题描述

我有一个数据库,想知道有多少人(由 ID 标识)匹配一个特征。清单是这样的:

111   A
109   A
112   A
111   A
108   A

我只需要计算有多少'ID'具有该功能,问题是有重复的ID。我试过了

count(df, vars = ID)

但它不显示 ID 的总数,只是重复了多少次。与

count(df, c('ID')

因为它显示了 ID 的总数并且其中许多是重复的,所以我需要计算一次。

你有什么建议吗?由于该数据库的大小,不能选择使用表函数。

标签: rdatabasecount

解决方案


您可以先使用删除重复项unique,然后count使用剩余的行:

d <- tribble(
~ID,~feature,  
111,   "A",
109,   "A",
112,   "A",
111,   "A",
108,   "A")

count(unique(d,vars = c(ID, feature)),vars=ID)

   vars     n
  <dbl> <int>
1   108     1
2   109     1
3   111     1
4   112     1

推荐阅读