correlation by group (was Re: [R] kunamorph@web.de)

From: Sundar Dorai-Raj <sundar.dorai-raj_at_pdf.com>
Date: Sat 09 Apr 2005 - 02:46:37 EST

Christfried Kunath wrote on 4/8/2005 10:39 AM:
> 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
>

(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



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Sat Apr 09 02:53:21 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:31:05 EST