[R] split apply on multiple variables

Naresh Gurbuxani n@re@h_gurbux@n| @end|ng |rom hotm@||@com
Fri Jul 1 13:07:37 CEST 2022


I am looking for a more general solution to below exercise.

Thanks,
Naresh

library(plyr)
mydf <- data.frame(
date = rep(seq.Date(from = as.Date("2022-06-01"), by = 1, length.out =
10), 4),
account = c(rep("ABC", 20), rep("XYZ", 20)),
client = c(rep("P", 10), rep("Q", 10), rep("R", 10), rep("S", 10)),
profit = round(runif(40, 2, 5), 2), sales = round(runif(40, 10, 20), 2))

mydf.split <- split(mydf, mydf$account)

# if there are 10 variables like sales, profit, etc., need 10 lines
myres <- lapply(mydf.split, function(df) {
sales.ts <- aggregate(sales ~ date, FUN = sum, data = df) #one step for both?
profit.ts <- aggregate(profit ~ date, FUN = sum, data = df)
merge(profit.ts, sales.ts, by = "date")})

myres.df <- ldply(myres)



More information about the R-help mailing list