Aggregate function in r is not working on my dataset -
sample dataset
date playerid revenue promo dayofweek 01/01/2017 146123 0 b sunday 01/01/2017 219378 0 b sunday 01/01/2017 198614 0 b sunday 02/01/2017 292640 30 monday 02/01/2017 139562 10 monday 02/01/2017 124967 20 monday 02/01/2017 107954 20 monday 03/01/2017 28391 10 b tuesday 03/01/2017 184388 21 b tuesday 03/01/2017 264222 20 b tuesday 03/01/2017 184857 0 b tuesday 04/01/2017 79788 40 wednesday
i wanted aggregate table dayofweek, , sum revenue each day of week, count number of players using playerid such final output looks this:
players revenue promo dayofweek 3 0 b sunday 4 80 monday 4 51 b tuesday 1 40 wednesday
i have been trying aggregate dataset attached above attempts unsuccessful. can help, please?
here code below.
aggdata <-aggregate(mydata, by=list(dayofweek,revenue, promo, playerid),                      fun=sum, na.rm=true) i got following errors
error in fun(x[[i]], ...) : invalid 'type' (character) of argument 
dplyr approach
library(dplyr) ans <- df %>%   group_by(dayofweek) %>%   summarise(promo=unique(promo), revenue=sum(revenue), playerid=n()) output
  dayofweek promo revenue playerid       <chr> <chr>   <int>    <int> 1    monday          80        4 2    sunday     b       0        3 3   tuesday     b      51        4 4 wednesday          40        1 data
df <- structure(list(date = c("01/01/2017", "01/01/2017", "01/01/2017",  "02/01/2017", "02/01/2017", "02/01/2017", "02/01/2017", "03/01/2017",  "03/01/2017", "03/01/2017", "03/01/2017", "04/01/2017"), playerid = c(146123l,  219378l, 198614l, 292640l, 139562l, 124967l, 107954l, 28391l,  184388l, 264222l, 184857l, 79788l), revenue = c(0l, 0l, 0l, 30l,  10l, 20l, 20l, 10l, 21l, 20l, 0l, 40l), promo = c("b", "b", "b",  "a", "a", "a", "a", "b", "b", "b", "b", "a"), dayofweek = c("sunday",  "sunday", "sunday", "monday", "monday", "monday", "monday", "tuesday",  "tuesday", "tuesday", "tuesday", "wednesday")), .names = c("date",  "playerid", "revenue", "promo", "dayofweek"), row.names = c(na,  -12l), class = c("data.table", "data.frame")) 
Comments
Post a Comment