[R] separate commands by semicolon

Adrian Dușa dusa.adrian at unibuc.ro
Sat Sep 17 17:28:06 CEST 2016


There is one minor problem with parse(): if any of the individual commands
has an error, the entire text will be parsed in a single error.

For example, in a normal R console:

> print(2); ls(
[1] 2
+

So first print(2) is executed, and only after the console expects the user
to continue the command from ls(
Parsing the same text:

> parse(text = "print(2); ls(")
Error in parse(text = "print(2); ls(") :
  <text>:2:0: unexpected end of input
1: print(2); ls(
   ^

What I would need is something to separate the two commands, irrespective
of their syntactical correctness:

[1] "print(2)" "ls("

I hope this explains the situation,
Adrian

On Thu, Sep 15, 2016 at 11:02 PM, Adrian Dușa <dusa.adrian at unibuc.ro> wrote:

> On Thu, Sep 15, 2016 at 10:28 PM, William Dunlap <wdunlap at tibco.com>
> wrote:
>
>> The most reliable way to split such lines is with parse(text=x).
>> Regular expressions don't do well with context-free grammars.
>>
>
> Oh, that's right of course.
> > as.character(parse(text = x))
> [1] "foo <- \"3;4\""                    "bar <- \"don't ; use semicolons\""
>
> That was simple enough, thanks very much,
> Adrian
>
> --
> Adrian Dusa
> University of Bucharest
> Romanian Social Data Archive
> Soseaua Panduri nr.90
> 050663 Bucharest sector 5
> Romania
>



-- 
Adrian Dusa
University of Bucharest
Romanian Social Data Archive
Soseaua Panduri nr.90
050663 Bucharest sector 5
Romania

	[[alternative HTML version deleted]]



More information about the R-help mailing list