Dear Rui, Kevin, Bryan and Nutter
Thank you so much for your very helpful hints! Now I have extracted all the file names and managed to edit them using the code (1)-(4) below and obtained the name format as I wanted (1) files<-list.files(path = "myworking directory", pattern = NULL, all.files = FALSE, full.names = FALSE, recursive = FALSE,ignore.case = FALSE, include.dirs = FALSE) (2) filenames <- files[grep("[.]csv", files)] [1] "512180_20120523150757.csv" "513687_20120523181947.csv" "513690_20120524112111.csv" "521858_20120524091428.csv" "523215_20120523123419.csv" ...(a few hundred more...) (3) data_names <- gsub("[.]csv", "", filenames) (4) NAME<- paste("Data",data_names, sep=".") Up to here I got NAME containing all the names I'm going to use.. > NAME [1] "Data.512180_20120523150757" "Data.513687_20120523181947" "Data.513690_20120524112111" "Data.521858_20120524091428" "Data.523215_20120523123419" .... But I still haven't successfuly read the whole bunch of csv files into R and name them as expected...e.g. I want to read "512180_20120523150757.csv" into R and name it "Data.512180_20120523150757" and so on... For a single file we can just write Data.512180_20120523150757<-read.csv("512180_20120523150757.csv") If any of the following commands (as you suggested) works, then my question is sorted out. But I got error messages for every attempt... (i) > df.list <- lapply(seq_len(filenames), read.csv) Error in seq_len(filenames) : argument must be coercible to non-negative integer In addition: Warning message: In is.vector(X) : NAs introduced by coercion > filenames [1] "512180_20120523150757.csv" "513687_20120523181947.csv" "513690_20120524112111.csv" "521858_20120524091428.csv" [5] "523215_20120523123419.csv"... (ii) None of the following code works... myDir="myworking directory" #for(i in 1:length(filenames)){assign(NAME[i], read.csv(file.path(myDir, filenames[i])))} #for(i in 1:5){assign(NAME[i], read.csv(file.path=myDir, filenames[i]))} setwd("myworking directory") #for(i in 1:5){assign(NAME[i], read.csv( filenames[i]))} Warning messages: 1: In N[i] <- read.csv(filenames[i]) : number of items to replace is not a multiple of replacement length 2: In N[i] <- read.csv(filenames[i]) : number of items to replace is not a multiple of replacement length 3: In N[i] <- read.csv(filenames[i]) : number of items to replace is not a multiple of replacement length 4: In N[i] <- read.csv(filenames[i]) : number of items to replace is not a multiple of replacement length 5: In N[i] <- read.csv(filenames[i]) : number of items to replace is not a multiple of replacement length Seems I am getting there, but could you spot where my code went wrong please?? Many thanks again! HJ On Fri, May 25, 2012 at 8:36 PM, Rui barradas <rui1...@sapo.pt> wrote: > Hello, > > Or maybe put the data frames in a list > > df.list <- lapply(seq_len(filenames), read.csv, ...) # '...other...' are > options you might want to pass, (like headers=TRUE) > names(df.list) <- data_names > > Now access the data frames by number in the list or by name in data_names. > > Hope this helps, > > Rui Barradas > Em 25-05-2012 20:08, Nutter, Benjamin escreveu: > >> For example: >> >> myDir<- "some file path" >> filenames<- list.files(myDir) >> filenames<- filenames[grep("[.]csv", filenames)] >> >> data_names<- gsub("[.]csv", "", filenames) >> >> for(i in 1:length(filenames)) assign(data_names[i], >> read.csv(file.path(myDir, filenames[i]))) >> >> >> Benjamin Nutter | Biostatistician | Quantitative Health Sciences >> Cleveland Clinic | 9500 Euclid Ave. | Cleveland, OH 44195 | (216) >> 445-1365 >> >> >> -----Original Message----- >> From: r-help-boun...@r-project.org >> [mailto:r-help-bounces@r-**project.org<r-help-boun...@r-project.org>] >> On Behalf Of Kevin Wright >> Sent: Friday, May 25, 2012 2:55 PM >> To: HJ YAN >> Cc: r-help@r-project.org >> Subject: Re: [R] Reading a bunch of csv files into R >> >> See ?dir >> >> Assign the value to a vector and loop over the elements of the vector. >> >> Kevin >> >> >> On Fri, May 25, 2012 at 12:16 PM, HJ YAN<yhj...@googlemail.com> wrote: >> >>> Dear R users >>> >>> >>> I am struggling from a data importing issue: >>> >>> I have some hundreds of csv files needed to be read into R for futher >>> analysis. All those csv files are named in one of the three formats: >>> >>> (1) strings: e.g. London_Oxford street >>> (2) Integer: e.g. 1234_5678 >>> (3) combined: e.g. London_1234 >>> >>> I intend to use read.csv("xxxx_xxx.csv") but I only dealt with sigle >>> documents before and if there are only no more than 20 files, I do not >>> bother to search a more efficient way. >>> >>> >>> Is there any claver way that I do not have to type in all these >>> hundreds names by hand, maybe using a R package or write some code in >>> some other languages if it is not too difficult to learn. >>> >>> Any thoughts/hints please?? >>> >>> Many thanks in advance! >>> >>> HJ >>> >>> [[alternative HTML version deleted]] >>> >>> ______________________________**________________ >>> 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. >>> >> >> >> -- >> Kevin Wright >> >> ______________________________**________________ >> 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. >> >> >> ==============================**===== >> >> Please consider the environment before printing this e-mail >> >> Cleveland Clinic is ranked one of the top hospitals >> in America by U.S.News& World Report (2010). >> >> Visit us online at http://www.clevelandclinic.org for >> a complete listing of our services, staff and >> locations. >> >> >> Confidentiality Note: This message is intended for use\...{{dropped:13}} >> >> >> ______________________________**________________ >> 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. > [[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.