2013-02-13 144 views
0

我是R新手,想要做以下工作。R(計數唯一的出現次數)

我有這樣的文件1的數據 -

Cookie Bannerid 
b 1 
c 2 
d 3 
e 4 
b 2 
c 3 
f Blank 
g Blank 
h  5 

數據文件2映射這些bannerid到bannersize(像) -

BannerID BannerSize 
1   300X250 
2   728X90 
3   728X90 
4   300X250 
5    300X250 

我想輸出是一樣

Banner Size  No. of cookies that show up only in that banner size 
300X250   1 
728X90   1 

任何幫助,將不勝感激。 謝謝!

+0

'728X90'的'1'如何?你能解釋一下嗎? – Arun 2013-02-13 11:28:28

+0

嗨Arun,D只存在於bannerid = 3,映射到728X90。 – AhmerK 2013-02-13 11:30:33

+0

@AhmerK,那麼對於'300X250',它必須是2 ='e'和'h' ..? – Arun 2013-02-13 11:39:43

回答

1

我還不太確定我是否理解這一點。但是,這是使用data.table的嘗試。

require(data.table) 
# assuming your data.frames are df1 and df2 
dt1 <- data.table(df1) 
dt2 <- data.table(df2, key="BannerID") 
dt3 <- dt1[, N := .N, by="Cookies"][N == 1] 
setkey(dt3, "Bannerid") 
o <- na.omit(dt3[dt2]) 

> o 
# Bannerid Cookie BannerSize 
# 1:  3  d  728X90 
# 2:  4  e 300X250 
# 3:  5  h 300X250 

o[, .N, by=BannerSize] 

# BannerSize N 
# 1:  728X90 1 
# 2: 300X250 2 

這是你期待的?

+0

是的,Arun,300X250必須是2。我的錯。在輸入示例時錯過了。我將使用的實際文件有大約20萬個曲奇,所以在急速寫下這個例子。 – AhmerK 2013-02-14 07:29:04