我有以下数据集
Note
我有兴趣知道
每家公司有多少个不同的领域?
所以,我需要一个像下面这样的数据框
data.frame(company=c("c1","c2","c3","c2","c1","c2"),field=c("A","B","C","A","D","C"))
答案 0 :(得分:1)
我们可以使用'{1}}'公司'的'字段'来查找每个'公司'中'{1}}'唯一'元素
aggregate
或使用length
,转换为'data.table'(aggregate(field~company, df1, FUN = function(x) length(unique(x)))
# company field
#1 c1 2
#2 c2 3
#3 c3 1
),按'公司'分组,使用方便的包装器(data.table
即setDT(df1)
{ {1}})
uniqueN
或length
与unique
library(data.table)
setDT(df1)[, .(fields = uniqueN(field)), company]
# company fields
#1: c1 2
#2: c2 3
#3: c3 1
注意:在示例中,每个“公司”的dplyr
'字段'数和'公司'中的总元素数相同。如果是后者,请使用n_distinct
中的library(dplyr)
df1 %>%
group_by(company) %>%
summarise(fields = n_distinct(field))
或unique
中的.N
,即
data.table
n()