如何dplyr ::通过组测量的平均值安排df内的组?

时间:2018-02-12 16:32:47

标签: r sorting dataframe dplyr group-summaries

基于Kara Woo的https://stackoverflow.com/a/26555424/9350837答案,我希望按照各个小组汇总度量vizCredPrcnt的平均值对我的分组df进行排序。

这是我的代码,到目前为止,

credData <- ReShapeAdCredSubset %>%
group_by(CredentialQ, year) %>%
summarise(vizCredPrcnt = (sum(credential_wIndiv, na.rm = TRUE) / (sum(credential_wAll, na.rm = TRUE)))) %>%
arrange(CredentialQ, year, desc(mean(vizCredPrcnt)))

这是我得到的错误,

  

arrange_impl(.data,dots)出错:   在位置3处的尺寸(1)不正确,期望:144

这是我的tibble,以及我想要排序的分组意思的视觉效果,

分组tibble以安排

enter image description here

很高兴听到你的想法!

2 个答案:

答案 0 :(得分:0)

我会尝试创建一个变量来指定CredentialQ组的visCredPrcnt变量的平均值,然后将其传递给arrange调用,如下所示:

{{1}}

答案 1 :(得分:0)

非常感谢,尼克!你的建议让我走上正确的道路,以及尼古拉的https://stackoverflow.com/a/44174523/9350837建议。

我接受了你们的两个建议,然后将它们混合在一起,这就是诀窍!

credData <- ReShapeAdCredSubset %>%
group_by(CredentialQ, year) %>%
summarise(vizCredPrcnt = (sum(credential_wIndiv, na.rm = TRUE) / (sum(credential_wAll, na.rm = TRUE)))) 

credData <- credData %>%
mutate(meanViz = mean(vizCredPrcnt, na.rm = TRUE)) %>%
group_by(CredentialQ) %>%
arrange(desc(meanViz))

再次感谢!