假设我有一个公式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
答案 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 ***
#...