我想根据A列中的数字对B列中的数字求和。 例如:R在不同列中的条件和
柱A:2001 2002 2002 2002 2003 2003
B栏:1 2 3 4 5 6
我要添加基于A.凝聚了B中的列C我期望的结果是:
柱A:2001 2002 2002 2002 2003 2003
B栏:1米2 3 4 5 6
C栏:1 9(2+ 3 + 4)9 9 11 11
我已经做了很多搜索,但真的不知道从哪里开始,在此先感谢您的帮助!
我想根据A列中的数字对B列中的数字求和。 例如:R在不同列中的条件和
柱A:2001 2002 2002 2002 2003 2003
B栏:1 2 3 4 5 6
我要添加基于A.凝聚了B中的列C我期望的结果是:
柱A:2001 2002 2002 2002 2003 2003
B栏:1米2 3 4 5 6
C栏:1 9(2+ 3 + 4)9 9 11 11
我已经做了很多搜索,但真的不知道从哪里开始,在此先感谢您的帮助!
我们可以从base R
df1$C <- with(df1, ave(B, A, FUN = sum))
由 'A'
library(dplyr)
df1 %>%
group_by(A) %>%
mutate(C= sum(B))
或用ave
分组后使用mutate
从dplyr
一个有效的选项是data.table
library(data.table)
setDT(df1)[, C := sum(B), by = A]
我可以再问你一个问题吗?如果有两个标准,我需要首先基于A添加列C,然后基于D,我尝试了库(dplyr) df1%>%group_by(A),group_by(D)%>%mutate(C =总和(B)),并且我把group_by(D)放到了很多地方,但没有成功。 – Amy
@Amy两个标准,是指两列?如果是这种情况'df1%>%group_by(A,someothercolumn)%>%mutate(C = sum(B))' – akrun
@Amy谢谢您的评论。你也可以勾选[here](http://stackoverflow.com/help/someone-answers) – akrun
到目前为止,您有尝试过什么吗? –