使用R中dplyr的加权平均值汇总
我正在尝试使用dplyr整理数据集。我的变量包含百分比和直接值(在本例中为页面浏览量和跳出率)。我试着这样总结:使用R中dplyr的加权平均值汇总,r,dplyr,R,Dplyr,我正在尝试使用dplyr整理数据集。我的变量包含百分比和直接值(在本例中为页面浏览量和跳出率)。我试着这样总结: require(dplyr) df<-df%>% group_by(pagename)%>% summarise(pageviews=sum(pageviews), bounceRate= weighted.mean(bounceRate,pageviews)) 我的数据集在页面浏览量和跳出率中都没有任何NA。 我不确定我做错了什么,也许summary
require(dplyr)
df<-df%>%
group_by(pagename)%>%
summarise(pageviews=sum(pageviews), bounceRate= weighted.mean(bounceRate,pageviews))
我的数据集在页面浏览量和跳出率中都没有任何NA。
我不确定我做错了什么,也许summary()
与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
summary()
命令将按变量在命令中出现的顺序替换变量,因此,由于您正在更改页面视图的值,因此新值将在加权平均值中使用。使用不同的名称更安全
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)
我找到了解决办法。
由于summary(pageviews=sum(pageviews)
是在boungerate=weighted.mean(boungerate,pageviews)
之前计算的,因此pageviews的长度会缩短,因此短于boungerate
,从而触发错误
解决方案很简单,只需切换它们:
require(dplyr)
df<-df%>%
group_by(pagename)%>%
summarise(bounceRate= weighted.mean(bounceRate,pageviews),pageviews=sum(pageviews))
require(dplyr)
df%
分组依据(页面名称)%>%
总结(反弹率=加权平均值(反弹率,页面浏览量),页面浏览量=总和(页面浏览量))
请提供一些数据。简单地颠倒汇总中的计算顺序就足够了:df%>%groupby(pagename)%%>%summary(bounceRate=weighted.mean(bounceRate,pageviews),pageviews=sum(pageviews))
require(dplyr)
df<-df%>%
group_by(pagename)%>%
summarise(bounceRate= weighted.mean(bounceRate,pageviews),pageviews=sum(pageviews))