[R] Problem: using cor.test with by( )
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! Best, Che-hsu (Joe) Chang, Sc.D., P.T. [[alternative HTML version deleted]] __ 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.
Re: [R] Problem: using cor.test with by( )
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 ~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 __ 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.
Re: [R] Problem: using cor.test with by( )
On Sun, Mar 30, 2008 at 7:11 PM, Che-hsu (Joe) Chang [EMAIL PROTECTED] wrote: 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)) This recent thread [1] might prove of interest. Liviu [1] http://www.nabble.com/p-value-in-Spearman-rank-order-tt15738907.html __ 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.