[Rd] Quoting (was: inline C/C++ in R: question and suggestion
Duncan Murdoch
murdoch at stats.uwo.ca
Tue May 22 22:58:43 CEST 2007
On 22/05/2007 4:01 PM, Vladimir Dergachev wrote:
> On Tuesday 22 May 2007 3:52 pm, Duncan Murdoch wrote:
>> On 5/22/2007 1:59 PM, Oleg Sklyar wrote:
>>
>> One suggestion that probably doesn't affect your package: It would be
>> even nicer if R incorporated something that Duncan Temple Lang suggested
>> last year, namely a new kind of quoting that didn't need escapes in the
>> string. He suggested borrowing triple quotes from Python; I suggested
>> something more like heredocs as in shells or Perl, or like \verb in TeX,
>> in case you wanted triple quotes in your C function. It would be nice
>> to settle on something, so that instead of
>>
>
> I second that. My favorite implementation of this is in Tcl, where curly
> braces {} mean that the text they enclose is unmodified. Since language
> constructs using them are normally balanced this is not an impediment.
That wouldn't work in R, because the parser couldn't tell whether
{ a }
was a block of code or a quoted string.
>
> One extremely useful application of this (aside from long strings) is
> specifying inline data frames - I don't know how to do this otherwise.
>
> I.e. something like:
>
> A<- scan.string({#
> Id Value Mark
> 1 a 3
> 2 b 4
> # })
When your data doesn't contain quote marks, you can just use regular
quotes to do that. I don't know of a scan.string function, but this works:
A <- read.table(textConnection("#
Id Value Mark
1 a 3
2 b 4
#"), head = TRUE)
I think DTL's suggestion would be most useful when putting a lot of code
in a string, where the escapes make the code harder to read. For
example, just about any function using a complicated regular expression.
Duncan Murdoch
More information about the R-devel
mailing list