[R] how to read different files into different objects in one time?

Jeff Newmiller jdnewmil at dcn.davis.CA.us
Thu Dec 20 06:11:41 CET 2012


The short answer is: don't try. You really don't want dozens of different objects in memory that you didn't name yourself.

What you want instead is a list of objects. You can start with a vector of filenames and use lapply to create another list containing the data frames. For convenience you can then set the list element names to the names of the files.

fnames <- list.files()
dta <- lapply( fnames, function(i){read.table(i, header= TRUE) })
names(dta) <- fnames

You can access these data frames using the $ or "[[" operators.

dta$G1.txt
dta[["G1.txt"]]
or 
dta[[2]]

Read more about it in the Introduction to R document supplied with R.
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
--------------------------------------------------------------------------- 
Sent from my phone. Please excuse my brevity.

Yao He <yao.h.1988 at gmail.com> wrote:

>Dear All
>
>I have a lot of files in a directory as follows:
>"02-03.txt"   "03-04.txt"   "04-05.txt"   "05-06.txt"   "06-07.txt"
>"07-08.txt"   "08-09.txt"
> "09-10.txt"   "G0.txt"      "G1.txt"      "raw_ped.txt"
>..........................
>
>I want to read them into different objects according to their
>filenames,such as:
>02-03<-read.table("02-03.txt",header=T)
>03-04<-read.table("03-04.txt",header=T)
>I don't want to type hundreds of read.table(),so how I read it in one
>time?
>I think the core problem is that I can't create different objects'
>name in the use of loop or sapply() ,but there may be a better way to
>do what I want.
>
>Thanks a lot
>
>Yao He
>
>Yao He




More information about the R-help mailing list