如何重命名复杂的公式?

时间:2014-03-24 05:29:58

标签: r

假设我有一个公式y~x1+x2+I( (x1==x2)*x3 )并估计一个线性模型

summary(lm(y~x1+x2+I( (x1==x2)*x3 ), data=some_data ))
Coefficients:
                   Estimate Std. Error t value Pr(>|t|)  
(Intercept)          3.6027     1.6069   2.242   0.0662 .
x1                   1.8685     1.9769   0.945   0.3811  
x2                   2.6041     2.0286   1.284   0.2466  
I((x1 == x2) * x3)   0.5666     1.5456   0.367   0.7265  

除了创建新的'data.frame'之外,是否有任何方法可以修改公式,以便汇总表成为

Coefficients:
                   Estimate Std. Error t value Pr(>|t|)  
(Intercept)          3.6027     1.6069   2.242   0.0662 .
x1                   1.8685     1.9769   0.945   0.3811  
x2                   2.6041     2.0286   1.284   0.2466  
some_name            0.5666     1.5456   0.367   0.7265  

1 个答案:

答案 0 :(得分:5)

使用within你可以解决问题。

而不是:

summary(lm(Sepal.Length ~ I(Sepal.Width * Petal.Length), data=iris))

#...
#(Intercept)                   4.252934   0.069396   61.28   <2e-16 ***
#I(Sepal.Width * Petal.Length) 0.142483   0.005632   25.30   <2e-16 ***
#...

您可以使用:

summary(lm(Sepal.Length ~ newvar, data=
         within(iris, newvar <- Sepal.Width * Petal.Length))) 

#...
#(Intercept) 4.252934   0.069396   61.28   <2e-16 ***
#newvar      0.142483   0.005632   25.30   <2e-16 ***
#...