【发布时间】:2018-10-25 05:25:36
【问题描述】:
我正在使用 dplyr 包生成一些表,并且我正在使用 adorn_totals("row") 函数。
当我想对组内的值求和时,这很好用,但在某些情况下,我想要一个整体平均值而不是总和。有adorn_means函数吗?
示例代码:
Regions2 <- Data %>%
filter(!is.na(REGION))%>%
group_by(REGION) %>%
summarise(Numberofpeople=length(Names))%>%
adorn_totals("row")
这里我的“总”行只是区域内所有人的总和。这给了我
REGION NumberofPeople
East Midlands 578,943
East of England 682,917
London 1,247,540
North East 245,830
North West 742,886
South East 963,040
South West 623,684
West Midlands 653,335
Yorkshire 553,853
TOTAL 6,292,028
我的下一段代码会生成每个地区的平均工资,但我想为总数添加一个总体平均值
Regions3 <- Data %>%
filter(!is.na(REGION))%>%
filter(!is.na(AVGSalary))%>%
group_by(REGION) %>%
summarise(AverageSalary=mean(AVGSalary))
如果我像以前一样使用adnorn_totals("row"),我只会得到平均值的总和,而不是数据集的整体平均值。
如何获得总体平均值?
更新一些点头数据:
数据
people region salary
person1 London 1000
person2 South West 1050
person3 South East 900
person4 London 800
person5 Scotland 1020
person6 South West 750
person7 East 600
person8 London 1200
person9 South West 1150
因此,组平均值为:
London 1000
South West 983.33
South East 900
Scotland 1020
East 600
我想把总数加到底部
Total 941.11
【问题讨论】:
-
请提供
Data的一个可重复的小例子。 'AVGSalary' 列不在显示的输出中。你是说想要mean而不考虑TOTAL? -
如果你想绕过
group_by,整列使用.data$AVGSalary或$AVGSalary -
我不想绕过 group_by - 我需要按组(在本例中为区域)进行细分。我需要在组的底部显示整个数据集的 AVGSalary
-
你的意思是
Data %>% group_by(region) %>% summarise(Avgsalary = mean(salary)) %>% bind_rows(., data_frame(region = 'Total', Avgsalary = mean(.$Avgsalary)))