On Tue, 29 Oct 2019 13:55:27 +0100 Witold E Wolski <wewol...@gmail.com> wrote:
> Since R knows how to parse expressions these type of expressions I > would like to reuse some existing functions and not to use gsub or > strsplit etc. You might be interested in the `parse` function: x <- "(a+b) * c/(d * (e - f))" str(parse(text = x)) # length 1 expression((a + b) * c/(d * (e - f))) # - attr(*, "srcref")=List of 1 # ..$ : 'srcref' int [1:8] 1 1 1 23 1 23 1 1 # .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x55ebecdac210> # - attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment:0x55ebecdac210> # - attr(*, "wholeSrcref")= 'srcref' int [1:8] 1 0 2 0 0 0 1 2 # ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile'<environment:0x55ebecdac210> parse(text = x)[[1]] # (a + b) * c/(d * (e - f)) parse(text = x)[[1]][1] # `/`() parse(text = x)[[1]][2] # ((a + b) * c)() parse(text = x)[[1]][3] # (d * (e - f))() Quoting ?expression, >> As an object of mode ‘"expression"’ is a list, it can be subsetted >> by ‘[’, ‘[[’ or ‘$’, the latter two extracting individual calls etc. -- Best regards, Ivan ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.