OK, a couple of things (I only looked through quickly):

1.  R doesn't allow variable names to begin with a number.  Be sure you don't 
try that.
2.  What's the overall goal here?  Read them in, change the name, then write 
them out?  Let us know and it will be easier to help you.
3.  Regardless of your goal, I think you are "over thinking" the solution.  Let 
us know what you want to accomplish and we can shorten it up I'm sure.

Bryan

On May 28, 2012, at 11:20 AM, HJ YAN wrote:

>  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-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
> PLEASE do read the posting guide
> 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
> PLEASE do read the posting guide 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
> PLEASE do read the posting guide 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
> 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]]

______________________________________________
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.

Reply via email to