[R] Help on aggregate method
Stella Pachidi
stella.pachidi at gmail.com
Tue Jun 1 16:48:29 CEST 2010
Dear R experts,
I would really appreciate if you had an idea on how to use more
efficiently the aggregate method:
More specifically, I would like to calculate the mean of certain
values on a data frame, grouped by various attributes, and then
create a new column in the data frame that will have the corresponding
mean for every row. I attach part of my code:
matchMean <- function(ind,dataTable,aggrTable)
{
index <- which((aggrTable[,1]==dataTable[["Attr1"]][ind]) &
(aggrTable[,2]==dataTable[["Attr2"]][ind]))
as.numeric(aggrTable[index,3])
}
avgDur <- aggregate(ap.dat[["Dur"]], by = list(ap.dat[["Attr1"]],
ap.dat[["Attr2"]]), FUN="mean")
meanDur <- sapply((1:length(ap.dat[,1])), FUN=matchMean, ap.dat, avgDur)
ap.dat <- cbind (ap.dat, meanDur)
As I deal with very large dataset, it takes long time to run my
matching function, so if you had an idea on how to automate more this
matching process I would be really grateful.
Thank you very much in advance!
Kind regards,
Stella
--
Stella Pachidi
Master in Business Informatics student
Utrecht University
More information about the R-help
mailing list