我有两个数据帧:
VESSELNO Equip
12234 503
12234 504
12234 505
12234 506
12231 502
12231 503
12231 503
其他数据框有以下列
VESSELNO Equip
12234 503
12234 604
12234 605
12234 506
12231 602
12231 603
12231 503
我想计算两个数据帧组合的唯一设备的数量
我们可以使用data.table
按VESSELNO分组并获取装备
dt[,paste(Equip,collapse = ","), by = VESSELNO]
如何比较唯一计数?
VESSELNO Equip
12234 (503,504,505,506,604,605) = 6
12231 (502,503,602,603) = 4
答案 0 :(得分:4)
我们可以rbind
两个数据集,按照“VESSELNO”和“VESSELNO”分组。
通过unique
uniqueN
个元素的数量
library(data.table)
setDT(rbind(df1, df2))[, .(Count = uniqueN(Equip)), VESSELNO]
# VESSELNO Count
#1: 12234 6
#2: 12231 4
如果我们使用aggregate
,请使用匿名函数获取length
个unique
元素
aggregate(Equip ~VESSELNO, rbind(df1, df2), FUN = function(x) length(unique(x)))