[R] Calculating group means using self-written function

Lauri Nikkinen lauri.nikkinen at iki.fi
Tue Oct 2 10:44:20 CEST 2007

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

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

Best regards

More information about the R-help mailing list