如何访问公式的属性

时间:2014-02-06 08:55:57

标签: r formula lm

我有一个公式对象并尝试访问公式,我找到了函数term

R) terms(myFormula)
z ~ 0 + I(x/v) + y + I(w/v)
attr(,"variables")
list(z, I(x/v), y, I(w/v))
attr(,"factors")
             I(x/v)      y       I(w/v)
z                 0      0            0
I(x/v)            1      0            0
y                 0      1            0
I(w/v)            0      0            1
attr(,"term.labels")
[1] "I(x/v)"   "y"       "I(w/v)"
attr(,"order")
[1] 1 1 1
attr(,"intercept")
[1] 0
attr(,"response")
[1] 1
attr(,".Environment")
<environment: 0x2f90dee0>

如何直接访问所有这些数据,比如'factors'或精美显示的z ~ 0 + I(x/v) + y + I(w/v)(我的意思是不使用粘贴)。

此外,我应该使用哪些函数来处理公式?

1 个答案:

答案 0 :(得分:1)

您可以使用attr功能获取或设置属性。

attr(terms(myFormula), "factors")

您可以使用methods函数找到公式的可用方法。

methods(class = "formula")
##  [1] [.formula*             aggregate.formula*     alias.formula*         all.equal.formula     
##  [5] ansari.test.formula*   bartlett.test.formula* boxplot.formula*       cdplot.formula*       
##  [9] cor.test.formula*      deriv.formula          deriv3.formula         fligner.test.formula* 
## [13] formula.formula*       friedman.test.formula* ftable.formula*        getInitial.formula*   
## [17] kruskal.test.formula*  lines.formula*         mood.test.formula*     mosaicplot.formula*   
## [21] pairs.formula*         plot.formula*          points.formula*        ppr.formula*          
## [25] prcomp.formula*        princomp.formula*      print.formula          quade.test.formula*   
## [29] selfStart.formula*     spineplot.formula*     stripchart.formula*    sunflowerplot.formula*
## [33] t.test.formula*        terms.formula          text.formula*          update.formula        
## [37] var.test.formula*      wilcox.test.formula*