Hello,
With the following, the first instruction will give you correlations
matrices, the second coefficients.
dat <- read.table(text = "
x y group
1 0.876751503 0.6518345 a
2 0.627067150 0.8801790 a
3 0.632465192 0.1768305 a
4 0.060359554 0.8835652 a
5 0.675868776 0.7721177 a
6 0.008465241 0.5046486 a
", header = TRUE)
str(dat)
lapply(split(dat[, c("x", "y")], dat$group), cor)
lapply(split(dat[, c("x", "y")], dat$group), function(d) cor(d$x, d$y))
Hope this helps,
Rui Barradas
Em 08-02-2013 16:33, carslaw escreveu:
I seem to have a Friday afternoon block and can't see the easiest way of
doing this.
Given a data frame like:
dat <- data.frame(x = runif(100), y = runif(100), group = rep(letters[1:10],
each = 10))
head(dat)
x y group
1 0.876751503 0.6518345 a
2 0.627067150 0.8801790 a
3 0.632465192 0.1768305 a
4 0.060359554 0.8835652 a
5 0.675868776 0.7721177 a
6 0.008465241 0.5046486 a
I want to work out cor(x, y) by group, so in this case ending up with 10
correlation coefficients by group.
I'm not seeing a straightforward solution and I'd appreciate your help.
Thanks
David
--
View this message in context:
http://r.789695.n4.nabble.com/aggregation-type-question-tp4657966.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________
R-help@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.
______________________________________________
R-help@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.