在模型矩阵中包括平方预测变量

时间:2014-04-04 03:08:33

标签: r

我有以下代码

x <- c(1, 2, 3)
y <- c(2, 3, 4)
z <- c(3, 4, 5)
df <- data.frame(x, y, z)

model.matrix(x ~ .^4, df)

这给了我一个模型矩阵,其中包含预测因子$ y,z $和$ y:z $。但是,我也想要y ^ 2和z ^ 2,并希望使用一个使用“$。$”的解决方案,因为我有很多其他预测因素超出$ y $和$ z $。什么是解决这个问题的最佳方法?

1 个答案:

答案 0 :(得分:1)

试试这个:

> x <- c(1, 2, 3)
> y <- c(2, 3, 4)
> z <- c(3, 4, 5)
> df <- data.frame(x, y, z)
> 
> #Assuming that your 1st column is the response variable, then I excluded it to have
> #just the independent variables as a new data.frame called df.2
> df.2=df[,-1]
> model.matrix(x ~ .^4+I(df.2^2), df)
  (Intercept) y z I(df.2^2)y I(df.2^2)z y:z
1           1 2 3          4          9   6
2           1 3 4          9         16  12
3           1 4 5         16         25  20
attr(,"assign")
[1] 0 1 2 3 3 4