2014-04-04 76 views
0

我有以下代碼包括平方預測模型矩陣

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

試試這個:

> 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 
+0

謝謝你 - 這是完美的! – encircled