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