"Henrik Bengtsson" <[EMAIL PROTECTED]> writes: > Sorry, this question was supposed to go to r-devel; move it there now. /HB > > ---------- Forwarded message ---------- > From: Henrik Bengtsson <[EMAIL PROTECTED]> > Date: Jul 16, 2006 11:11 AM > Subject: Generating valid R code using R > To: R-help <r-help@stat.math.ethz.ch> > > > Hi, > > I'm trying to generate valid R code using R. Parts of the task is to > read a sequence of characters from file and escape them such that they > can be put in quotation marks to form a valid R code string. Example: > > Let the input file be (four rows containing ASCII 0-255 characters): > abcdef<tab>ghijk\nlmno > second row\t\a\\ > > fourth and so on... > <EOF> > > Now, find escapeString() such that the following piece of code > generates a second file called 'file2.txt' which is identical to > 'file1.txt': > > inStr <- readChar("file1.txt", nchars=999) > esStr <- escapeString(inStr) > rCode <- sprintf('cat(file="file2.txt", "%s")', esStr) > cat(file="foo.R", rCode) > source("foo.R") > > For instance, quotation marks has to be escaped in order for 'rCode' > to be valid, same with newlines etc. What's the best way to do this? > Currently I use an ad hoc sequence of gsub() substitutions to do this, > but is there a better way to create the 'rCode' string?
I'd look in the direction of deparse/dput, as in > X [1] "abc\t\nfoobar\"\n" > cat(X) abc foobar" > deparse(X) [1] "\"abc\\t\\nfoobar\\\"\\n\"" -- O__ ---- Peter Dalgaard Ă˜ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel