dplyr引用R中的两个数据帧(汇总函数)

时间:2015-02-26 21:09:40

标签: r dplyr

我使用具有独特营销来源的数据集创建了数据框。假设我在这个新数据框D1中有20个独特的营销来源。我想添加另一个列,其中包含此营销来源在原始数据框中的次数。我正在尝试使用dplyr包,但不确定如何引用多个数据帧。

原始数据有16000个观测值 新数据框有20个观察结果,因为只有20个独特的营销来源。 如何在dplyr中使用汇总来引用两个数据帧? 我的目标是找到营销来源的百分比。

我的原始数据框有两列:NAME,MARKETING_SOURCE 该数据框有16,000个观察点和20个不同的营销来源(电子邮件,活动,销售电话等) 我创建了一个只有唯一的MARKETING_SOURCES的新数据框,并将其称为数据框D1 在我的新数据框中,我想添加另一列,其中包含每个营销来源在原始数据框中出现的次数。 我的新数据框应该有两列:MARKETING_SOURCE,COUNT

1 个答案:

答案 0 :(得分:0)

我不知道你是否需要使用dplyr这样的东西......

首先让我们创建一些data.frames:

df1 <- data.frame(source = letters[sample(1:26, 400, replace = T)])
df2 <- data.frame(source = letters, count = NA)

然后我们可以使用table()来获取频率:

counts <- table(df1$source)
df2$count <- counts
head(df2)
  source count
1      a    10
2      b    22
3      c    12
4      d    17
5      e    18
6      f    18

<强>更新

为了回应下面@ MrFlick的明智评论,您可以使用names()输出的table()来确保订单得到保留:

df2$source <- names(counts)

如果df2有其他列,那肯定不那么优雅,甚至不那么优雅。但对于上面提到的简单案例就足够了。