I have some member order data that I would like to aggregate by week of order.
This is what the data looks like:
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))
I'm using dplyr to group_by MemID
and summarize "value" for week<=2
and week<=4
(to see how much each member ordered in weeks 1-2 and 1-4. The code I currently have is:
MemberLTV <- memberorders %>% group_by(MemID) %>% summarize( sum2 = sum(value[week<=2]), sum4 = sum(value[week<=4]))
I'm now trying to add two more fields in summarize, count2 and count4, that would count the number of instances of each condition (week <=2
and week <=4
).
The desired output is:
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))
I'm guessing it's just a little tweak of the sum function but I'm having trouble figuring it out.
count() lets you quickly count the unique values of one or more variables: df %>% count(a, b) is roughly equivalent to df %>% group_by(a, b) %>% summarise(n = n()) .
The ncol() function in R programming That is, ncol() function returns the total number of columns present in the object.
group_by() function along with n() is used to count the number of occurrences of the group in R. group_by() function takes “State” and “Name” column as argument and groups by these two columns and summarise() uses n() function to find count of a sales.
Try
library(dplyr) memberorders %>% group_by(MemID) %>% summarise(sum2= sum(value[week<=2]), sum4= sum(value[week <=4]), count2=sum(week<=2), count4= sum(week<=4))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With