I'm not sure why you want to do it this way (it would probably help if we had a more complete picture of what you were really trying to do, but here are a few possibilities for the questions you ask.
1. generating data frames. rw <- c(4,5,2) cl <- c(3,3,3) for(i in 1:length(rw)) assign(paste("auto.data", i, sep="."), as.data.frame(array(0, dim=c(rw[i], cl[i]), dimnames = list(NULL, paste("X", 1:cl[i], sep=""))))) check: > auto.data.1 X1 X2 X3 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 > auto.data.2 X1 X2 X3 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 0 0 0 > auto.data.3 X1 X2 X3 1 0 0 0 2 0 0 0 2. filling them up (... are you sure you want to do it this way?) The simplest way is probably through an intermediary for(nam in paste("auto.data", 1:3, sep=".")) { # loop over the names tmp <- get(nam) for(i in 1:nrow(tmp)) for(j in 1:ncol(tmp)) tmp[i, j] <- i+j-i*j # 'some value' assign(nam, tmp) rm(tmp) } check: > auto.data.1 X1 X2 X3 1 1 1 1 2 1 0 -1 3 1 -1 -3 4 1 -2 -5 > auto.data.2 X1 X2 X3 1 1 1 1 2 1 0 -1 3 1 -1 -3 4 1 -2 -5 5 1 -3 -7 > auto.data.3 X1 X2 X3 1 1 1 1 2 1 0 -1 > It may work, but I have to say, though, I'm almost sure this is a mistake. There has to be a better way using the facilities that R provides for avoiding heavy loops like this. Just a hunch... Bill Venables CSIRO Laboratories PO Box 120, Cleveland, 4163 AUSTRALIA Office Phone (email preferred): +61 7 3826 7251 Fax (if absolutely necessary): +61 7 3826 7304 Mobile: +61 4 8819 4402 Home Phone: +61 7 3286 7700 mailto:[EMAIL PROTECTED] http://www.cmis.csiro.au/bill.venables/ -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Drescher, Michael (MNR) Sent: Friday, 13 July 2007 9:19 AM To: r-help@stat.math.ethz.ch Subject: [R] automatically generating and accessing data frames of varyingdimensions Hi All, I want to automatically generate a number of data frames, each with an automatically generated name and an automatically generated number of rows. The number of rows has been calculated before and is different for all data frames (e.g. c(4,5,2)). The number of columns is known a priori and the same for all data frames (e.g. c(3,3,3)). The resulting data frames could look something like this: > auto.data.1 X1 X2 X3 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 > auto.data.2 X1 X2 X3 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 0 0 0 > auto.data.3 X1 X2 X3 1 0 0 0 2 0 0 0 Later, I want to fill the elements of the data frames with values read from somewhere else, automatically looping through the previously generated data frames. I know that I can automatically generate variables with the right number of elements with something like this: > auto.length <- c(12,15,6) > for(i in 1:3) { + nam <- paste("auto.data",i, sep=".") + assign(nam, 1:auto.length[i]) + } > auto.data.1 [1] 1 2 3 4 5 6 7 8 9 10 11 12 > auto.data.2 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 > auto.data.3 [1] 1 2 3 4 5 6 But how do I turn these variables into data frames or give them any dimensions? Any commands such as 'as.matrix', 'data.frame', or 'dim' do not seem to work. I also seem not to be able to access the variables with something like "auto.data.i" since: > auto.data.i Error: object "auto.data.i" not found Thus, how would I be able to automatically write to the elements of the data frames later in a loop such as ... > for(i in 1:3) { + for(j in 1:nrow(auto.data.i)) { ### this obviously does not work since 'Error in nrow(auto.data.i) : object "auto.data.i" not found' + for(k in 1:ncol(auto.data.i)) { + auto.data.i[j,k] <- 'some value' + }}} Thanks a bunch for all your help. Best, Michael Michael Drescher Ontario Forest Research Institute Ontario Ministry of Natural Resources 1235 Queen St East Sault Ste Marie, ON, P6A 2E3 Tel: (705) 946-7406 Fax: (705) 946-2030 ______________________________________________ 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.