On Wed, Dec 22, 2010 at 2:57 AM, Phil Spector <spec...@stat.berkeley.edu> wrote: > To make your loop work, you need to learn about the get function. > I'm not going to give you the details because there are better > approaches available. > First, let's make some data that will give values which can be verified. > (All the correlations of the data you created > are exactly equal to 1.) And to make the code readable, I'll > omit the ts.m prefix. > >> set.seed(14) >> dmi = matrix(rnorm(20),4,5) >> soi = matrix(rnorm(20),4,5) >> pe = matrix(rnorm(20),4,5) >> allmats = list(dmi,soi,pe) > > Since cor.test won't automatically do the tests for all columns > of a matrix, I'll write a little helper function: > >> gettests = function(x)apply(x,2,function(col)cor.test(pe[,2],col) >> tests = lapply(allmats,gettests) > > Now tests is a list of length 2, with a list of the output from > cor.test for the five columns of the each matrix with pe[,2] > (Notice that in your program you made no provision to store the results > anywhere.) > > Suppose you want the correlations: > >> sapply(tests,function(x)sapply(x,function(test)test$estimate)) > > [,1] [,2] > cor 0.12723615 0.1342751 > cor 0.07067819 0.6228158 > cor -0.28761533 0.6218661 > cor 0.83731828 -0.9602551 > cor -0.36050836 0.1170035 > > The probabilities for the tests can be found similarly: > >> sapply(tests,function(x)sapply(x,function(test)test$p.value)) > > [,1] [,2] > [1,] 0.8727638 0.86572490 > [2,] 0.9293218 0.37718416 > [3,] 0.7123847 0.37813388 > [4,] 0.1626817 0.03974489 > [5,] 0.6394916 0.88299648 > Hmisc already provides a function for doing this, rcorr(). Try to compute correlations using Rcmdr for an example.
Regards Liviu > (Take a look at the "Values" section in the help file for cor.test > to get the names of other quantities of interest.) > > The main advantage to this approach is that if you add more matrices > to the allmats list, the other steps automaticall take it into account. > > Hope this helps. > - Phil Spector > Statistical Computing Facility > Department of Statistics > UC Berkeley > spec...@stat.berkeley.edu > > > > > > On Tue, 21 Dec 2010, govin...@msu.edu wrote: > >> >> >> Hi, >> >> I am having trouble with matrices. I?have 2 matrices as given below, and I >> am interested in using these matrices inside "for" loops used to calculate >> correlations. I am creating a list with the names of the matrices assuming >> this list could be indexed inside the 'for' loop to retrieve the matrix >> values. But, as expected the code throws out an error. Can someone suggest a >> better way to call these matrices inside the loops? >> >> ts.m.dmi <- matrix(c(1:20), 4, 5) >> ts.m.soi <- matrix(c(21:40), 4, 5) >> ts.m.pe <- matrix(c(21:40), 4, 5) >> >> factors <- c("ts.m.dmi", "ts.m.soi") >> for (j in 0:1){ >> y <- factors[j+1] >> >> for (i in 1:5){ >> >> cor.pe.y <- cor(ts.m.pe[,2], y[,i]) >> ct.tst <- cor.test(ts.m.pe[,2], y[,i]) >> } >> } >> >> Thanks for your time. >> >> -- >> Regards, >> Maha >> Graduate Student >> [[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. > -- Do you know how to read? http://www.alienetworks.com/srtest.cfm http://goodies.xfce.org/projects/applications/xfce4-dict#speed-reader Do you know how to write? http://garbl.home.comcast.net/~garbl/stylemanual/e.htm#e-mail ______________________________________________ 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.