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.calandra@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.calandra@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.
538280@gmail.com

	[[alternative HTML version deleted]]

