2013-02-13 93 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