Conditionnellement à Compter dans dplyr

J'ai quelques membres de l'ordre des données que je voudrais globale par semaine de la commande.

C'est ce que l'apparence des données:

memberorders=data.frame(MemID=c('A','A','B','B','B','C','C','D'),
             week = c(1,2,1,4,5,1,4,1),
             value = c(10,20,10,10,2,5,30,3))

Je suis en utilisant dplyr à group_by "MemID" et de résumer la "valeur" pour la "semaine" <=2 et <=4 (pour voir combien chaque membre commandé dans les semaines 1-2 et 1-4. Le code que j'ai actuellement est:

MemberLTV <- memberorders %>%
group_by(MemID) %>%
summarize(
sum2 = sum(value[week<=2]),
sum4 = sum(value[week<=4]))

Je vais maintenant essayer d'ajouter deux champs en résumé, count2 et count4, qui serait de compter le nombre d'occurrences de chaque condition (semaine <=2 et la semaine <=4).

La sortie désirée est:

output  = data.frame(MemID = c('A','B','C','D'),
                 sum2 = c(30,10,5,3),
                 sum4 = c(30,20,35,3),
                 count2 = c(2,1,1,1),
                 count4 = c(2,2,2,1))

Je suppose que c'est juste une petite astuce de la fonction somme, mais je vais avoir de la difficulté à essayer de le comprendre.

OriginalL'auteur SFuj | 2015-04-27