Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用R中dplyr的加权平均值汇总_R_Dplyr - Fatal编程技术网

使用R中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

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

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))