我正在尝试使用 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/