2015-10-15 84 views
2

我有一个数据框,我试图将其分组,然后根据两列进行求和。这两列是一个月份和另一个变量的字符。如何按R中的两列分组

以下是数据框架和结构的示例。

#row.names month variable amount 
    1   1-Jan  x  1000 
    2   1-Jan  x  3000 
    3   2-Feb  z  5000 
    4   2-Feb  y  3000 

我试图对数据进行分组第一,然后我会试着总结一下,但是我无法得到group_by_()这样的伎俩。以下是我试过的代码。

byVarMonth <- group_by_(df, variable, (as.date(month))) 

感谢您的帮助。

+0

(1)使用'GROUP_BY()'(2)这是'as.Date( )'(3)你需要在'as.Date()' –

+0

的格式然后'group_by(df,variable,month = months(as.Date(month,“%d-%b”),TRUE))'应该完成它,但我真的没有看到有理由将该列转换为Date。你可以将它按原样分组。 –

回答

3

您显然不想将您的角色[月]作为日期变量。考虑到我没有错,你可以简单地做这样的事情:

library(dplyr) 

tab %>% 
    group_by(month, variable) %>% 
    summarise(a_sum=sum(amount), 
      a_mean=(mean(amount))) 

,并得到这样的:

Source: local data frame [3 x 4] 
Groups: month 

    month variable a_sum a_mean 
1 1-Jan  x 4000 2000 
2 2-Feb  y 3000 3000 
3 2-Feb  z 5000 5000