web-dev-qa-db-fra.com

Comment regrouper par deux colonnes dans R

J'essaie de regrouper une trame de données, puis d'additionner sur deux colonnes. Les deux colonnes sont des caractères dont l'un correspond au mois et l'autre à la variable.

Ce qui suit est un exemple du cadre et de la structure de données.

#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 

J'ai d'abord essayé de regrouper les données, puis j'essayais de résumer. Cependant, je ne parviens pas à obtenir group_by_ () pour faire l'affaire. Voici le code que j'ai essayé.

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

Merci pour l'aide.

7
Clayton Samples

Vous n'êtes apparemment pas intéressé à prendre votre personnage [mois] comme une variable Date. Considérant que je ne me trompe pas, vous pouvez simplement faire quelque chose comme ceci:

library(dplyr)

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

et obtenez ceci:

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
11
Paulo E. Cardoso