[R] Reading a list of filenames from a csv file
Sarah Goslee
sarah.goslee at gmail.com
Thu Jul 11 15:49:04 CEST 2013
Hi Janetta,
At a first guess, you need:
files <- read.csv(file="files.csv",head=FALSE,sep=",", stringsAsFactors=FALSE)
str(files)
would clear up any confusion as to whether the contents of the first
column of files are character or not.
If that doesn't help, then setting i <- 1 and running each line of
code in the loop individually (copy and paste) will give you a clearer
idea of where problems arise.
Sarah
On Thu, Jul 11, 2013 at 9:01 AM, Jannetta Steyn <jannetta at henning.org> wrote:
> What would be the best way to read a list of filenames and headings from a
> csv file?
>
> The CSV file is structured as two columns, with column one being the
> filename and column two being a heading e.g.:
> ANA110915004A_3PERIOD_TmAvg-rdata.csv,Pre-DA
> ANA110915006A_3PERIOD_TmAvg-rdata.csv,DA-10^-6
> ANA110915012A_3PERIOD_TmAvg-rdata.csv,DA-10^-4
> ANA110915016A_3PERIOD_TmAvg-rdata.csv,Washout
>
>
> I want to be able to open the file using read.csv and use the heading as
> the header of a graph.
>
> Reading the filenames from the directory with list.files() works but then I
> don't have the headings that go with the file e.g.:
> filenames<-list.files(pattern="*.csv")
> for (i in seq_along(filenames)) {
> con<-read.csv(filenames[i], headers=TRUE, sep=',')
> }
>
> I tried the code below (which I posted in a different thread) but the
> solutions that people offered me didn't get it to work. The code results in
> 'Error in read.table(file = file, header = header, sep = sep, quote =
> quote, :
> 'file' must be a character string or connection
>
> # Read filenames from csv file
> files <- read.csv(file="files.csv",head=FALSE,sep=",")
>
> # for each filename read the file
> for (i in 1:length(files)) {
> # f becomes the next row inthe file
> f<-files[i,]
> # the header to be used for the graph is in column 2 of f
> head=f[2]
> par(mfrow=c(4,2))
> # the filename to be used is in column 1 of f
> con<-read.csv(file=f[1], header=TRUE, sep=',')
> tmp<-con$value2
> data<-normalize_js(tmp,-1,1)
> time<-con$time
> # run the waveform analyser
> waveformanalyser(data,time,head)
> }
>
> Regards
> Jannetta
>
> --
>
> ===================================
> Web site: http://www.jannetta.com
> Email: jannetta at henning.org
> ===================================
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
--
Sarah Goslee
http://www.functionaldiversity.org
More information about the R-help
mailing list