gpt4 book ai didi

r - 如何聚合 R 中分类变量的唯一值的计数

转载 作者:行者123 更新时间:2023-12-04 12:33:01 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Counting unique / distinct values by group in a data frame

(12 个回答)


8 个月前关闭。




假设我有一个数据集 data :

x1 <- c("a","a","a","a","a","a","b","b","b","b")
x2 <- c("a1","a1","a1","a1","a1","a1","b1","b1","b2","b2")
data <- data.frame(x1,x2)

x1 x2
a a1
a a1
a a2
a a1
a a2
a a3
b b1
b b1
b b2
b b2

我想找到 x1 的唯一值的数量对应于 x2
例如 a只有 3 个唯一值( a1,a2a3 )和 b有 2 个值( b1b2 )

我用过 aggregate(x1~.,data,sum)但它不起作用,因为这些是因子,而不是整数。

请帮忙

最佳答案

尝试

 aggregate(x2~x1, data, FUN=function(x) length(unique(x)))
# x1 x2
#1 a 3
#2 b 2

或者
 rowSums(table(unique(data)))

或者
library(dplyr)
data %>%
group_by(x1) %>%
summarise(n=n_distinct(x2))

或者使用 dplyr 的其他选项由@Eric 建议
count(distinct(data), x1)

或者
library(data.table)
setDT(data)[, uniqueN(x2) , x1]

更新

如果您同时需要 unique 'x2' 的值和计数
setDT(data)[, list(n=uniqueN(x2), x2=unique(x2)) , x1]

或者只有 unique值(value)观
setDT(data)[, list(x2=unique(x2)) , x1]

或使用 dplyr
 unique(data, by=x1) %>% 
group_by(x1) %>%
mutate(n=n_distinct(x2))

仅适用于唯一值
unique(data, by=x1)

关于r - 如何聚合 R 中分类变量的唯一值的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29001141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com