[R] Problem: using cor.test with by( )
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Sun Mar 30 19:36:58 CEST 2008
Che-hsu (Joe) Chang wrote:
> Hello everyone,
>
>
>
> I'm a new R user switching from SAS and JMP. In the first few days, I have
> been trying to do a fairly simple task but yet found no success. I've
> checked the help archive as well as few R textbooks but didn't seem to find
> the answer. So, please help me if you can.
>
>
>
> Basically, I want to calculate the correlation between variable A and B for
> every subject in my study. (yep, that simple)
>
> What I did is this:
>
>
>
> by(data, id, function (x) cor.test(A,B, data=x))
>
>
>
> The results gave me numbers of correlation for each subject. But, the
> problem is that, all these correlations are the same numbers and the sample
> size was always the entire database (including all subjects). I've also
> tried the lm function instead of the cor.test, and the by() function works
> fine. Can any of you tell me what I did wrong? Or could you tell me what is
> the best way to apply a function by subjects? Thank you!
>
>
>
>
Only the model formula interface to cor.test uses the data argument, so
you need either
cor.test(x$A,x$B)
or
cor.test(~A+B, data=x)
>
>
> Best,
>
> Che-hsu (Joe) Chang, Sc.D., P.T.
>
>
>
>
>
--
O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list