使用dplyr添加摘要行

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

我已经总结了我的数据,并希望将这些总和添加到我的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 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