按主题dplyr向下求和()列

按主题dplyr向下求和()列,r,dplyr,summarize,mutate,R,Dplyr,Summarize,Mutate,我试图使用dplyr来总结一些数据,但无法计算出如何对部分列的值求和。通常我会使用tally(),但在这种情况下,我想将所有1和0相加,因此tally()不合适 我的数据如下所示: subj | child | child_age | older | younger 1 1 374 0 1 1 2 465 1 0 2 1 573

我试图使用dplyr来总结一些数据,但无法计算出如何对部分列的值求和。通常我会使用tally(),但在这种情况下,我想将所有1和0相加,因此tally()不合适

我的数据如下所示:

  subj | child | child_age | older | younger
    1      1        374        0        1
    1      2        465        1        0
    2      1        573        1        0
    2      2        583        1        0
    2      3        172        0        1
  subj | n_child | older | younger
    1      2        1         1
    2      3        2         1
所以,我想创建一个数据集,为每个主题显示有多少“年长”的孩子和有多少“年轻”的孩子。这应该是这样的:

  subj | child | child_age | older | younger
    1      1        374        0        1
    1      2        465        1        0
    2      1        573        1        0
    2      2        583        1        0
    2      3        172        0        1
  subj | n_child | older | younger
    1      2        1         1
    2      3        2         1
这是我到目前为止使用的代码:

  child_ages <- data %>%
    group_by(subj) %>%
    mutate(nOlder = sum(older),
           nYounger = sum(younger)) %>%
    ungroup()
儿童年龄%
分组依据(主题)%>%
突变(nOlder=和(旧),
nYounger=总和(年轻人))%>%
解组()
我还尝试了summary()代替mutate();两者似乎都在通过命令忽略我的组_,只给我整个数据的总数


非常感谢

可能重复的
数据%>%group\u by(subc)%%>%summary(n_child=n(),nOlder=sum(年长),nyonger=sum(年轻))
适用于me@DavidArenburg这是对的。它应该会起作用。您不应该在结尾处
ungroup()
,因为您需要在group之后的信息。@AGore
ungroup
在这里不相关。它不会使数据再次变长。它也可以与
ungroup()
一起使用。