Alternatives to sprintf() include formatC() or prettyNum(), which would have to be used in combination with paste().

In Carl's solution, the file.path() function should be considered, since it automatically uses the correct path separators for the OS. Furthermore, eval() is not necessary.

So, for example,

 x <- formatC(scan(),width=4,flag='0')
1: 23
2:
Read 1 item
 x
[1] "0023"

root.dir <- 'D:\R\Data'

read.csv( file.path(root.dir,x,paste(x,'.csv',sep=''))) ## those are all single quotes

This isn't necessarily better than the sprintf() version, just different, and shows some additional useful functions(). This way of using formatC() requires that the user input only numbers:

 x <- formatC(scan(),width=4,flag='0')
1: jk
1:
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  :
  scan() expected 'a real', got 'jk'

I don't know what sprintf() would do with such input.

-Don

At 7:01 PM -0400 9/10/09, Carl Witthoft wrote:
That will not work (or at least doesn't work for me.

This does work:

fnam<-'thefilename.csv'  #or build the name however you like
fpath <- 'macintoshhd/users/me/myfolder/  # or whatever you need

read.csv(eval(paste(fpath,fnam,sep=""))  #worked for me


Carl



-----------

Try this:

read.csv(sprintf("D://R//Data//%04d//%04d.csv", x, x), header = TRUE)

On Wed, Sep 9, 2009 at 9:32 PM, Steven Kang <stochastick...@gmail.com>wrote:

 Dear R users,


 I have numerous data sets (csv files) saved in the folder which has the
 same
 name as individual data.
 (i.e data x1 saved in x1 folder, data x2 in x2 folder etc)

 I would like to read in the desired data set name using 'scan' function and
 assign this inputted value to an object so that it can be used in the
 'read.csv' function.

 For example,

 x <- scan()
 1: 0708
 2:
 Read 1 item

 dat <- read.csv("D://R//Data//x//x.csv", head=TRUE, sep = ",")
 Error in file(file, "r") : cannot open the connection
 In addition: Warning message:
 In file(file, "r") :
  cannot open file ('D://R//Data//x//x.csv': No such file or directory



--
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O

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


--
---------------------------------
Don MacQueen
Lawrence Livermore National Laboratory
Livermore, CA, USA
925-423-1062
m...@llnl.gov

______________________________________________
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