R: Split object into terms

split_terms {formula.tools} | R Documentation

## Split object into terms

### Description

Split formulas, call and expressions into terms.

### Usage

    split_terms(x, recursive = FALSE)

### Arguments

`x` | object to split terms from
`recursive` | logical; whether to split terms recursively in parenthetical enclosed terms (depth-first). (Default: FALSE)

### Details

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

### Value

experession vector of terms

### References

* [SO: How to split a formula](https://stackoverflow.com/questions/39155701/how-to-split-a-formula-in-r)

### See Also

* [terms()]

### Examples

      split_terms(1)                   # 1
      split_terms( quote(a) )          # a
      split_terms( quote(-a) )         # -a
      split_terms( quote(a+1) )        # a, 1
      split_terms( quote(1+a) )        # 1, a
      split_terms( quote(-1+a) )       # -1, a
      split_terms( quote(-1-a) )

      split_terms( quote(a+b+c) )      # a,b,c
      split_terms( quote((a+b)+1) )    # (a+b),1
      split_terms( quote((a+b)+1), recursive=TRUE )    # a,b,1
      split_terms( quote((a-b)+1), recursive=TRUE )    # a,-b,1
      split_terms( quote(-a) )         # -a

      split_terms( quote(a-1) )        # a, -1
      split_terms( quote(-a-1))        # -a, -1
      split_terms( quote( -(a+1) ) )   # -(a+1)
      split_terms( quote( -(a+1) ), recursive=TRUE )  # -a,-1

      split_terms( quote( ---a ))
      split_terms( quote( -(a+(b-(c+d)))), recursive=TRUE )

[Package formula.tools version 1.7.1 Index]