Does something like the following make any sense for your context? > z <- "(xy+ s)/ (ab +log(4.13))" > > lapply(parse(text = z), FUN = function(x)strsplit(deparse(x), split = "[[:space:]]+")) [[1]] [[1]][[1]] [1] "(xy" "+" "s)/(ab" "+" "log(4.13))"
Cheers, Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Tue, Oct 29, 2019 at 9:23 AM Ivan Krylov <krylov.r...@gmail.com> wrote: > 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. > [[alternative HTML version deleted]] ______________________________________________ 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.