2017-07-03 41 views
0

我有兩個dataframes:集料的柱和比較文字

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 

我想計算獨特的裝備的數量都dataframes 相結合,我們可以使用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

library(dplyr) dt <- dt%>%group_by(VESSELNO)%>%summarize(x = n_distinct(Equip)) – AntonCH

回答

4

我們可以rbind兩個數據集,通過 'VESSELNO' 分組得到unique元素的個數與uniqueN

library(data.table) 
setDT(rbind(df1, df2))[, .(Count = uniqueN(Equip)), VESSELNO] 
# VESSELNO Count 
#1: 12234  6 
#2: 12231  4 

如果我們使用aggregate,則使用匿名函數得到lengthunique元素

aggregate(Equip ~VESSELNO, rbind(df1, df2), FUN = function(x) length(unique(x)))