目录

formula.tools

Utilities for Formulas, Expressions, Calls, Assignments and Other R Objects

CRAN_Status_Badge License Downloads software impact

These utilities facilitate the programmatic manipulations of formulas, expressions, calls, names, symbols and other R language objects. These objects all share the same structure: a left-hand side (lhs), an operator (op) and right-hand side (rhs). This packages provides methods for accessing and modifying this structures as well as extracting and replacing names and symbols from these objects.

It is easiest to understand through the [#Examples].

Installation

Stable Version

install.packages('formula.tools')

Development Verison

devtools::install_github("decisionpatterns/formula.tools")

Overview

Manipulate parts of a formula/expression/call/assignment:

  • lhs: get/set the left-hand side of an object
  • rhs: get/set the right-hand side of an object
  • op: get/set the operator of an object

Get variables (names) in a formula/expression/call/assignment:

  • get.vars: like base::all.vars except all symbols (e.g. .) can be interpolated from data, so that things like y ~ . can return the correct values.
    • lhs.vars: get.vars on lhs of the object
    • rhs.vars: get.vars on rhs of the object

Get terms from formula or expression:

  • terms: get the terms from an object by interpolating special symbols
    (e.g. `.`) using a data set data.  Extends `stats::terms()` 
  • split_terms: split (mathematical) terms into an expression vector without interpolating special symbols (e.g. .)

Examples

Formula terms and operators can be accessed or changed.


## Get parts of formula 

form <- y ~ x 

lhs(form)                # y
lhs(form) <- quote(t)
form                     # t ~ x

rhs(form)                # x
rhs(form) <- 1
form                     # t ~ 1


## Get variables (names)

form <- y ~ m*x + b

get.vars(form)           # "y" "m" "x" "b"
lhs.vars(form)           # "y"
rhs.vars(form)           # "m" "x" "b"


## Split terms

terms(form)

split_terms(form)        # expression(Species ~ . - Sepal.Length)
split_terms( quote(a+(b+(c+d))), recursive=TRUE )   # expression(a, b, c, d)
关于

用于处理和操作R语言公式对象的工具集

156.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802032778号