在R公式中使用变量的平方

时间:2014-08-05 09:36:48

标签: r formula

我正在尝试运行包含自变量平方的回归。其他转换似乎有效,但广场无法识别。例如

lm(y ~ x + x^2 + sin(x), data=as.data.frame(cbind(x=rnorm(10), y=rnorm(10))))

Call:
lm(formula = y ~ x + x^2 + sin(x), data = as.data.frame(cbind(x = rnorm(10), 
   y = rnorm(10))))

Coefficients:
(Intercept)            x       sin(x)  
    -0.1594      -0.6171       1.2072 

罪被识别,但x ^ 2不是。

2 个答案:

答案 0 :(得分:5)

您必须使用I包含“按原样”处理该术语,而不是将^解释为公式运算符(有关详细信息,请参阅?formula)。

lm(y ~ x + I(x^2) + sin(x), data=as.data.frame(cbind(x=rnorm(10), y=rnorm(10))))

Call:
lm(formula = y ~ x + I(x^2) + sin(x), data = as.data.frame(cbind(x = rnorm(10), 
    y = rnorm(10))))

Coefficients:
(Intercept)            x       I(x^2)       sin(x)  
    0.06850      2.82023     -0.03109     -3.84221

答案 1 :(得分:0)

你可以简单地写

lm(y ~ x + c(x*x) + sin(x), data=as.data.frame(cbind(x=rnorm(10), y=rnorm(10))))