[Rd] Fwd: Generating valid R code using R

Henrik Bengtsson hb at stat.berkeley.edu
Sun Jul 16 13:18:43 CEST 2006


Sorry, this question was supposed to go to r-devel; move it there now. /HB

---------- Forwarded message ----------
From: Henrik Bengtsson <hb at stat.berkeley.edu>
Date: Jul 16, 2006 11:11 AM
Subject: Generating valid R code using R
To: R-help <r-help at 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?

Thanks

Henrik



More information about the R-devel mailing list