The only real improveent I can see over Ivan's solution is to use lapply instead of the loop (this may just be person preference though).
Something like: list_df <- lapply( lista_rea_c, function(x) read.xls( file= paste0(path,x,"/",x,".xls"),1,header=TRUE,as.data.frame=TRUE)) my_df <- do.call(rbind, list_df) You could even do that as a single line if you really wanted to, but it would be less readable. You could also make it a little more readable by putting the paste on its own line to create all the path/filenames in a variable to pass to lapply. On Tue, Mar 12, 2013 at 9:06 AM, Ivan Calandra <ivan.calan...@u-bourgogne.fr > wrote: > Hi Mario! > > I'm not really familiar with this kind of manipulations, but I think you > can do it more or less like this (some people on this list might give a > more detailed answer): > > #Create an empty named list > list_df <- vector(mode="list", length=length(lista_rec_c)) > names(list_df) <- lista_rea_c ##or some part of it using gsub or > something similar > > #Import > for (i in lista_rea_c) { > list_df[[i]] <- read.xlsx(...) > } > > #rbind > do.call(rbind, list_df) > > This probably won't work like this exactly but you should be able to make > the modifications. > > HTH, > Ivan > > -- > Ivan CALANDRA > Université de Bourgogne > UMR CNRS/uB 6282 Biogéosciences > 6 Boulevard Gabriel > 21000 Dijon, FRANCE > +33(0)3.80.39.63.06 > ivan.calan...@u-bourgogne.fr > http://biogeosciences.u-**bourgogne.fr/calandra<http://biogeosciences.u-bourgogne.fr/calandra> > > Le 12/03/13 15:52, A M Lavezzi a écrit : > >> Hello everybody >> >> I have the following problem. I have to load a number of xls files from >> different folders (each xls file has the same number of columns, and >> different numbers of rows). Each xls file is named with a number, i.e. >> 12345.xls and is contained in a folder with same name, say 12345) >> >> Once loaded, I want to rbind all of them to obtain a single database. >> >> I think I successfully did the first part, using "assign": >> >> for (i in lista_rea_c){ >> >> name=paste("reaNum",i,sep="",**collapse=NULL) >> >> assign(name,read.xlsx(file=**paste(path,i,"/",i,".xls",sep=** >> "",collapse=NULL),1,header=**TRUE,as.data.frame=TRUE)) >> >> } >> >> where lista_rea_c contains the "numbers" and is obtained >> as: lista_rea_c = list.files(path = "/Users/mario/Dropbox/..., and path is >> defined elsewhere >> At this point I have a number of variables, names as "reaNum12345" ecc. >> >> I would like to rbind all of them, but what I get is that I rbind >> "reaNum12345", i.e. the variable name and not the data it contains. >> >> Can anyone help? >> >> thanks! >> Mario >> >> >> >> >> ______________________________**________________ >> R-help@r-project.org mailing list >> https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help> >> PLEASE do read the posting guide http://www.R-project.org/** >> posting-guide.html <http://www.R-project.org/posting-guide.html> >> and provide commented, minimal, self-contained, reproducible code. >> > > ______________________________**________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help> > PLEASE do read the posting guide http://www.R-project.org/** > posting-guide.html <http://www.R-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > -- Gregory (Greg) L. Snow Ph.D. 538...@gmail.com [[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.