R(计算唯一事件)

时间:2013-02-13 11:22:07

标签: r grouping

我是R的新手,希望做到以下几点。

我在文件1中有数据 -

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

文件2中的数据将这些bannerid映射到bannerize(类似) -

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

任何帮助将不胜感激。 谢谢!

1 个答案:

答案 0 :(得分: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

这是你期待的吗?