Yao He
2012-Dec-20 04:24 UTC
[R] how to read different files into different objects in one time?
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 -- ????????????????????????? Master candidate in 2rd year Department of Animal genetics & breeding Room 436,College of Animial Science&Technology, China Agriculture University,Beijing,100193 E-mail: yao.h.1988 at gmail.com ??????????????????????????
Jorge I Velez
2012-Dec-20 04:49 UTC
[R] how to read different files into different objects in one time?
Dear Yao, You can use a list() as follows (untested): setwd("~/path/to/your/files") f <- list.files(pattern = ".txt") # list the files info <- lapply(f, read.table, header = TRUE) names(info) <- f info To see the information in the first data set just do info[[1]] See ?list.files and ?lapply for more information. HTH, Jorge On Thu, Dec 20, 2012 at 3:24 PM, Yao He <> 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 > > > -- > ————————————————————————— > Master candidate in 2rd year > Department of Animal genetics & breeding > Room 436,College of Animial Science&Technology, > China Agriculture University,Beijing,100193 > E-mail: yao.h.1988@gmail.com > —————————————————————————— > > ______________________________________________ > 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. >[[alternative HTML version deleted]]
Jeff Newmiller
2012-Dec-20 05:11 UTC
[R] how to read different files into different objects in one time?
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