[Rd] Quoting (was: inline C/C++ in R: question and suggestion

Vladimir Dergachev vdergachev at rcgardis.com
Tue May 22 23:42:13 CEST 2007


On Tuesday 22 May 2007 4:58 pm, Duncan Murdoch wrote:
> 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:
> >
> > 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 }

One easy workaround is to have string{ ... } construct - it should be very 
easy to parse string{ differently from { alone.

>
> 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)

Cool, thank you !

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

Also anything using .Tcl(). Quotes in data frame definition are useful because 
they could be employed to delimit text fields with spaces in them.

                     best

                        Vladimir Dergachev



More information about the R-devel mailing list