How to group by two columns in R

I have a data frame that I am trying to group and then sum based on two columns. The two columns are characters with one being month and the other variable.

The following is a sample of the data frame and structure.

#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 

I tried to group the data first and then I was going to try to summarise, however I am unable to get group_by_() to do the trick. Below is the code I tried.

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

Thanks for the help.


Solution 1:

You apparently are not interested in taking your Character [month] as a Date variable. Considering that I'm not wrong you could simply do something like this:

library(dplyr)

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

and get this:

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

Solution 2:

... or, you can use an alternative sintax:

summarise(group_by(df, variable), sum(amount), mean(amount))

Enjoy.