Skip to content

kunamorph@web.de

2 messages · mailpuls@gmx.net, Sundar Dorai-Raj

#
Hello,

how can I use the function "cor()" with x and y in function 
"aggregate()" or "by()"?

The data are like this:
x   y   group
1   4   B
2   4   B
3   5   C

I would like obtain the correlation between x and y for each subset. I 
don't want to use the workaround with the function subset(), because I 
have many groups.

Thanks in advance.
Christfried Kunath KC
#
Christfried Kunath wrote on 4/8/2005 10:39 AM:
(Please use an informative subject as the posting guide recommends.)

Your example is not very useful, but perhaps you need something like:

tmp <- data.frame(x = rnorm(100), y = rnorm(100),
                   group = rep(letters[1:5], each = 20))
sapply(split(tmp, tmp["group"]), function(z) cor(z$x, z$y))
# OR
rbind(by(tmp, tmp["group"], function(z) cor(z$x, z$y)))

--sundar