使用dplyr添加摘要行
我已经总结了我的数据,并希望将这些总和添加到我的data.frame中各自性别的下方。例如,在我的女性行之后,我想在它下面加上我的女性和,年龄=All 我想我可以使用dplyr来完成这一点,但我不知道如何在data.frame中选择位置 我认为应该是这样的:使用dplyr添加摘要行,r,dplyr,R,Dplyr,我已经总结了我的数据,并希望将这些总和添加到我的data.frame中各自性别的下方。例如,在我的女性行之后,我想在它下面加上我的女性和,年龄=All 我想我可以使用dplyr来完成这一点,但我不知道如何在data.frame中选择位置 我认为应该是这样的: Gender Year.10 Year.11 Year.12 Year.13 Year.10.1 Year.11.1 Year.12.1 Year.13.1 1 FEMALE 1181980 1113480 1040
Gender Year.10 Year.11 Year.12 Year.13 Year.10.1 Year.11.1 Year.12.1 Year.13.1
1 FEMALE 1181980 1113480 1040960 1033150 1116220 1059850 1022950 974490
2 MALE 674020 783150 571170 594330 641620 767590 554290 563670
3 UNSPECIFIED 31930 7740 14670 17420 31930 5590 9170 17420
我使用summary_eachfunsum=sum.,na.rm=TRUE,start_with year来生成我的摘要,我可能必须将其放在我的mutate中
dummy.c %>%
group_by(Gender) %>%
rowwise () %>%
mutate () #### It's here where I don't know where to go on from
编辑1:显示数据
>人头模型
taildummy.c
另一种选择是使用同一作者的Reformae2和dplyr软件包,顺便说一句,p:
Gender Age Year.10 Year.11 Year.12 Year.13 Gender.1 Age.1 Year.10.1 Year.11.1 Year.12.1
18 UNSPECIFIED 10-19 5690 NA NA NA UNSPECIFIED 10-19 5690 NA NA
19 UNSPECIFIED 20-39 NA 5590 NA 11720 UNSPECIFIED 20-39 NA 5590 NA
20 UNSPECIFIED 40-59 12850 NA 5560 NA UNSPECIFIED 40-59 12850 NA 5560
21 UNSPECIFIED 60-64 2470 NA NA NA UNSPECIFIED 60-64 2470 NA NA
22 UNSPECIFIED 65+ NA NA 3610 NA UNSPECIFIED 65+ NA NA 3610
23 UNSPECIFIED UNSP 10920 NA 5500 5700 UNSPECIFIED UNSP 10920 NA NA
Year.13.1
18 NA
19 11720
20 NA
21 NA
22 NA
23 5700
发生了什么,一行一行:
你的data.frame
删除重复的列
正在融化的数据.frame。在这里查看结果,以便更好地理解。
在这种情况下,按性别、年龄和可变年份汇总。聚合函数是na.rm=TRUE的和。然后,margin=Age根据需要按年龄列出总数。
结果:
df %>%
select(-Gender.1,-Age.1) %>%
melt %>% # melting data.frame. See the results until here to better understanding.
dcast(Gender + Age ~ variable, sum, na.rm=TRUE, margins = "Age")
希望有帮助。使用同一作者的Reformae2和dplyr软件包的替代方案,btw=p:
Gender Age Year.10 Year.11 Year.12 Year.13 Gender.1 Age.1 Year.10.1 Year.11.1 Year.12.1
18 UNSPECIFIED 10-19 5690 NA NA NA UNSPECIFIED 10-19 5690 NA NA
19 UNSPECIFIED 20-39 NA 5590 NA 11720 UNSPECIFIED 20-39 NA 5590 NA
20 UNSPECIFIED 40-59 12850 NA 5560 NA UNSPECIFIED 40-59 12850 NA 5560
21 UNSPECIFIED 60-64 2470 NA NA NA UNSPECIFIED 60-64 2470 NA NA
22 UNSPECIFIED 65+ NA NA 3610 NA UNSPECIFIED 65+ NA NA 3610
23 UNSPECIFIED UNSP 10920 NA 5500 5700 UNSPECIFIED UNSP 10920 NA NA
Year.13.1
18 NA
19 11720
20 NA
21 NA
22 NA
23 5700
发生了什么,一行一行:
你的data.frame
删除重复的列
正在融化的数据.frame。在这里查看结果,以便更好地理解。
在这种情况下,按性别、年龄和可变年份汇总。聚合函数是na.rm=TRUE的和。然后,margin=Age根据需要按年龄列出总数。
结果:
df %>%
select(-Gender.1,-Age.1) %>%
melt %>% # melting data.frame. See the results until here to better understanding.
dcast(Gender + Age ~ variable, sum, na.rm=TRUE, margins = "Age")
希望能有所帮助。由于您的数据没有按性别排序,也没有与汇总数据相同数量的列,因此不清楚您想要的输出是什么样子的。哈索里没有放示例数据,我对输出的解释也很糟糕。例如,在我的女性行之后,我想在下面加上我的女性和,年龄==AllI,我建议你阅读我关于整洁数据的论文:。如果您了解基本原则,您将从tidyr和dplyr中获得更多。由于您的数据没有按性别排序,也没有与汇总数据相同数量的列,因此不清楚您想要的输出会是什么样子,因为哈索里没有放示例数据,而且我对输出的解释很差。例如,在我的女性行之后,我想在下面加上我的女性和,年龄==AllI,我建议你阅读我关于整洁数据的论文:。如果您了解基本原理,您将从tidyr和dplyr中获得更多。感谢您的帮助,这非常有效。我肯定会将Reforme2添加到我要学习的软件包列表中!谢谢你的帮助,这很好用。我肯定会将Reforme2添加到我要学习的软件包列表中!
df %>%
select(-Gender.1,-Age.1) %>%
melt %>% # melting data.frame. See the results until here to better understanding.
dcast(Gender + Age ~ variable, sum, na.rm=TRUE, margins = "Age")
Gender Age Year.10 Year.11 Year.12 Year.13 Year.10.1 Year.11.1 Year.12.1 Year.13.1
1 FEMALE 3-9 46890 30150 18020 19060 41370 30150 18020 19060
2 FEMALE 10-19 58440 92870 50900 84110 52680 87280 50900 78440
3 FEMALE 40-59 484770 439860 454200 412650 460340 417800 447400 395700
4 FEMALE (all) 590100 562880 523120 515820 554390 535230 516320 493200
5 MALE 0-2 16900 22380 2260 5860 16900 22380 2260 5860
...
17 UNSPECIFIED UNSP 10920 0 5500 5700 10920 0 0 5700
18 UNSPECIFIED (all) 26240 2150 14670 5700 26240 0 9170 5700