The FAQ does mention your point already. On 2/27/07, Greg Snow <[EMAIL PROTECTED]> wrote: > Others have pointed you to the answer to your question, but both FAQ > 7.21 and the assign help page should really have a big banner at the top > saying "Here Be Dragons". > > Using a loop or other automated procedure to create variables in the > main namespace can cause hard to find bugs, accidentally clobber > existing variables, and other non-fun things. > > For this type of thing it is usually best to use a list (or an > environment, but I am more comforatable with lists). > > For your example you could do something like: > > > mymats <- list() > > for (i in 1:54){ > + myname <- paste('mymatrix',i,sep='') > + mymats[[myname]] <- matrix( # insert whatever code you want here > + } > > A big advantage of this approach is that you can then deal with your > list of matricies as a single unit. If you want to delete them, you > just delete the list rather than having to delete 54 individual > matricies. The list can also be saved as a single unit to a file, > passed to another function, etc. > > To access a single matrix (for example 'mymatrix5' which is in position > 5) you have several options: > > > mean( mymats[[5]] ) > > mean( mymats[['mymatrix5']] ) > > with( mymats, mean(mymatrix5) ) > > attach(mymats) > > mean(mymatrix5) # as long as there is not a mymatrix 5 in the global > environment > > detach() > > And probably others. > > Hope this helps, > > -- > Gregory (Greg) L. Snow Ph.D. > Statistical Data Center > Intermountain Healthcare > [EMAIL PROTECTED] > (801) 408-8111 > > > > > -----Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] On Behalf Of Monika Kerekes > > Sent: Sunday, February 25, 2007 9:03 AM > > To: r-help@stat.math.ethz.ch > > Subject: [R] Macros in R > > > > Dear members, > > > > > > > > I have started to work with R recently and there is one thing > > which I could not solve so far. I don't know how to define > > macros in R. The problem at hand is the following: I want R > > to go through a list of 1:54 and create the matrices input1, > > input2, input3 up to input54. I have tried the following: > > > > > > > > for ( i in 1:54) { > > > > input[i] = matrix(nrow = 1, ncol = 107) > > > > input[i][1,]=datset$variable > > > > } > > > > > > > > However, R never creates the required matrices. I have also > > tried to type input'i' and input$i, none of which worked. I > > would be very grateful for help as this is a basic question > > the answer of which is paramount to any further usage of the software. > > > > > > > > Thank you very much > > > > > > > > Monika > > > > > > > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > 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 > > and provide commented, minimal, self-contained, reproducible code. > > > > ______________________________________________ > 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 > and provide commented, minimal, self-contained, reproducible code. >
______________________________________________ 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 and provide commented, minimal, self-contained, reproducible code.