Split formulas, call and expressions into terms.
split_terms(x, recursive = FALSE)experession vector of terms
Unlike the [terms()] function, `split_terms` does not use [stats::terms()] and instead just splits `x` into an **expression vector** of terms. (Terms are the mathematical notion of terms). The signs of the terms are preserved.
If `recursive` is `TRUE`, splitting occurs recursively, i.e. parsing of the input descends into parenthetical expressions `(...)`.
See **examples**.
* [SO: How to split a formula](https://stackoverflow.com/questions/39155701/how-to-split-a-formula-in-r)
* [terms()]
split_terms(1) # 1
#> expression(1)
split_terms( quote(a) ) # a
#> expression(a)
split_terms( quote(-a) ) # -a
#> expression(-a)
split_terms( quote(a+1) ) # a, 1
#> expression(a + 1)
split_terms( quote(1+a) ) # 1, a
#> expression(1 + a)
split_terms( quote(-1+a) ) # -1, a
#> expression(-1 + a)
split_terms( quote(-1-a) )
#> expression(-1 - a)
split_terms( quote(a+b+c) ) # a,b,c
#> expression(a + b + c)
split_terms( quote((a+b)+1) ) # (a+b),1
#> expression((a + b) + 1)
split_terms( quote((a+b)+1), recursive=TRUE ) # a,b,1
#> expression((a + b) + 1)
split_terms( quote((a-b)+1), recursive=TRUE ) # a,-b,1
#> expression((a - b) + 1)
split_terms( quote(-a) ) # -a
#> expression(-a)
split_terms( quote(a-1) ) # a, -1
#> expression(a - 1)
split_terms( quote(-a-1)) # -a, -1
#> expression(-a - 1)
split_terms( quote( -(a+1) ) ) # -(a+1)
#> expression(-(a + 1))
split_terms( quote( -(a+1) ), recursive=TRUE ) # -a,-1
#> expression(-(a + 1))
split_terms( quote( ---a ))
#> expression(---a)
split_terms( quote( -(a+(b-(c+d)))), recursive=TRUE )
#> expression(-(a + (b - (c + d))))