# [R] lapply and aggregate function

Patrick Hausmann Patrick.Hausmann at uni-bremen.de
Tue Feb 3 16:11:57 CET 2009

```Dear list,

I have two things I am struggling...

# First
set.seed(123)
myD <- data.frame( Light = sample(LETTERS[1:2], 10, replace=T),
Feed  = sample(letters[1:5], 20, replace=T),
value=rnorm(20) )

# Mean for Light
myD\$meanLight <- unlist( lapply( myD\$Light,
function(x) mean( myD\$value[myD\$Light == x]) ) )
# Mean for Feed
myD\$meanFeed  <- unlist( lapply( myD\$Feed,
function(x) mean( myD\$value[myD\$Feed == x]) ) )
myD

# I would like to get a new Var "meanLightFeed"
# holding the "Group-Mean" for each combination (eg. A:a = 0.821581)
# by(myD\$value, list(myD\$Light, myD\$Feed), mean)[]

# Second
set.seed(321)
myD <- data.frame( Light = sample(LETTERS[1:2], 10, replace=T),
value=rnorm(20) )

w1 <- tapply(myD\$value, myD\$Light, mean)
w1
# > w1
#         A          B
# 0.4753412 -0.2108387

myfun <- function(x) (myD\$value > w1[x] & myD\$value < w1[x] * 1.5)

I would like to have a TRUE/FALSE-Variable depend on the constraint in
"myfun" for each level in "Light"...

As always - thanks for any help!!
Patrick

```