r - 在 R 中使用 dplyr 的加权平均值进行汇总

标签 r dplyr

我正在尝试使用 dplyr 整理数据集。我的变量包含百分比和简单值(在本例中为页面浏览量和跳出率)。我尝试这样总结它们:

require(dplyr)
df<-df%>%
   group_by(pagename)%>%
   summarise(pageviews=sum(pageviews), bounceRate= weighted.mean(bounceRate,pageviews))

但这会返回:

 Error: 'x' and 'w' must have the same length

我的数据集的页面浏览量和跳出率均不存在任何 NA。 我不确定我做错了什么,也许 summarise() 不适用于 weighted.mean()

编辑

我添加了一些数据:

### Source: local data frame [4 x 3]

###               pagename bounceRate pageviews
                    (chr)      (dbl)     (dbl)
###1                url1   72.22222      1176
###2                url2   46.42857       733
###3                url2   76.92308       457
###4                url3   62.06897       601

最佳答案

summarize() 命令按照变量在命令中出现的顺序替换变量,因此,由于您正在更改综合浏览量的值,因此新值将在weighted.mean 中使用。使用不同的名称更安全

df %>%
   group_by(pagename)%>%
   summarise(pageviews_sum = sum(pageviews), 
      bounceRate_mean = weighted.mean(bounceRate,pageviews))

如果您确实愿意,可以稍后重命名

df %>%
   group_by(pagename) %>%
   summarise(pageviews_sum = sum(pageviews), 
      bounceRate_mean = weighted.mean(bounceRate,pageviews)) %>% 
   rename(pageviews = pageviews_sum, bounceRate = bounceRate_mean)

关于r - 在 R 中使用 dplyr 的加权平均值进行汇总,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42979452/

相关文章:

r - 使用 Dplyr 查找组的最大值并在同一表的另一列中改变结果

r - 在 select_ 中构造变量名

r - 使用 summarise_all [R] 在 dplyr 组内执行 t 检验

r - 聚类向量在 R 中得到一个零一矩阵

r - R 3.0.3 rbind多个csv文件

python - R 选取经济衰退期的开始日期和结束日期

r - 如何在数据帧的特定索引中插入行,其中仅在 R pipe dplyr 中包含上面几行的总和

r - 使用 ggplot2 对多个梯度进行分组

r - 改变列表的逻辑

r - 如何将不同长度的时间序列围绕 ggplot 图形中的特定点居中