[R] Odp: Calculating group means using self-written function

Petr PIKAL petr.pikal at precheza.cz
Tue Oct 2 11:49:15 CEST 2007


Hi

r-help-bounces at r-project.org napsal dne 02.10.2007 10:44:20:

> Hi R-users,
> 
> Suppose I have a following data set.
> 
> y1 <- rnorm(20) + 6.8
> y2 <- rnorm(20) + (1:20*1.7 + 1)
> y3 <- rnorm(20) + (1:20*6.7 + 3.7)
> y <- c(y1,y2,y3)
> var1 <- rep(1:5,12)
> z <- rep(1:6,10)
> f <- gl(3,20, labels=paste("lev", 1:3, sep=""))
> d <- data.frame(var1=var1, z=z,y=y, f=f)
> 
> Using following code I can calculate group means
> 
> library(doBy)
> summaryBy(y ~ f + var1, data=d, FUN=mean)
> 
> How do I have to modify the FUN argument if I want to calculate mean
> using unique values
> 
> for instance
> 
> fun <- function(x, y) sum(x)/length(unique(y))
> summaryBy(y ~ f + var1, data=d, FUN=fun(y, z)
> 
> Error in get(x, envir, mode, inherits) : variable "currFUN" of mode
> "function" was not found

Not sure how to do it in doBy but using aggregate

aggregate(d$y, list(d$var1,d$f), fun, y=z)

probably do what you want

Regards
Petr

> 
> Best regards
> LN
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list