我有一个数据框df
,如下所示:
Name = c("Tom D Frost","Tom D Frost", "Tom D Frost", "William J Hardy", "William J Hardy", "Steven D Debauche", "Nicholas K Foster", "Sean F Williamson")
Institute = c("ASA", "ASA", "ASA", "BSC", "BSC", "BSC", "AXB", "PSDZ")
ID = c(165, 170, 189, 181, 165, 784, 165, 170)
df = data.frame(Name, Institute, ID)
#df
Name Institute ID
1 Tom D Frost ASA 165
2 Tom D Frost ASA 170
3 Tom D Frost ASA 189
4 William J Hardy BSC 181
5 William J Hardy BSC 165
6 Steven D Debauche BSC 784
7 Nicholas K Foster AXB 165
8 Sean F Williamson PSDZ 170
对于每个名称,我想获得一组ID,然后计算这些ID组的唯一名称。对于这个样本df,我期待这样的结果:
Name Institute UniqueCountofNamebyIDGroup
Tom D Frost ASA 4
William J Hardy BSC 3
Steven D Debauche BSC 1
Nicholas K Foster AXB 3
Sean F Williamson PSDZ 2
在数据框中,我想计算ID组的名称。例如,“Tom D Frost”有3个ID,例如165,170和189.因此,我想计算这些ID的唯一名称。因此,165,170和189有4个独特的名字,如“Tom D Frost”,“William J Hardy”,“Nicholas K Foster”和“Sean F Williamson”。因此,“Tom D Frost”的唯一计数为4
我尝试使用dplyr
library(dplyr)
df %>%
group_by(Name) %>%
summarise(uniqueCount = n())
这只是给出了每个姓名的频率如下:
Name UniqueCount
<fctr> <int>
1 Nicholas K Foster 1
2 Sean F Williamson 1
3 Steven D Debauche 1
4 Tom D Frost 3
5 William J Hardy 2
如上所述,我想为df
中属于每个姓名的ID组计算唯一名称,而不是其频率。
非常感谢任何帮助和支持。非常感谢你。
答案 0 :(得分:1)
您可以进行自我加入:
{{1}}