计算R中分组数据中的唯一数据点
我已经搜索了几个小时了,所以找不到这个解决方案 我有以下数据集:计算R中分组数据中的唯一数据点,r,unique,R,Unique,我已经搜索了几个小时了,所以找不到这个解决方案 我有以下数据集: ID RANK 1 1 1 3 1 3 1 4 2 2 2 3 2 3 2 3 3 1 4 2 4 2 我试着按ID分组,然后计算排名
ID RANK
1 1
1 3
1 3
1 4
2 2
2 3
2 3
2 3
3 1
4 2
4 2
我试着按ID分组,然后计算排名在组ID中出现的唯一次数,以便计算结果
ID RANK Unique
1 1 1
1 3 2
1 3 2
1 4 1
2 2 1
2 3 3
2 3 3
2 3 3
3 1 1
4 2 2
4 2 2
我用的是这个公式,它只是提供了排名列中的结果
Unique <- with(DATA, RANK, ID, FUN = function(i) length((unique(i))))
UniqueBase R解决方案。将按ID和等级交叉分类的项目数量制成表格。当您可以识别一个向量,该向量需要在可能的多个条件下应用f=函数,但需要将结果分布回数据帧时,ave
函数非常有用:length
函数正在进行计数:
> dat$UNIQUE <- with(dat, ave(ID, ID, RANK, FUN=length))
> dat
ID RANK UNIQUE
1 1 1 1
2 1 3 2
3 1 3 2
4 1 4 1
5 2 2 1
6 2 3 3
7 2 3 3
8 2 3 3
9 3 1 1
10 4 2 2
11 4 2 2
>dat$UNIQUE dat
ID秩唯一
1 1 1 1
2 1 3 2
3 1 3 2
4 1 4 1
5 2 2 1
6 2 3 3
7 2 3 3
8 2 3 3
9 3 1 1
10 4 2 2
11 4 2 2
当@hadley决定在dplyr
中重新定义R时,他使用count
作为其等价函数的名称。与dplyr
:df%>%groupby(ID,RANK)%%>%mutate(Unique=n())
或base R:df$Unique