4
> reg.len <- lm(chao1.ave ~ lg.std.len, b.div) # b.div is my data frame imported from a CSV file
> reg.len

Call:
lm(formula = chao1.ave ~ lg.std.len, data = b.div)

Coefficients:
(Intercept)   lg.std.len  
      282.4       -115.7  

> newx <- seq(0.6, 1.4, 0.01)
> prd.len <- predict(reg.len, newdata=data.frame(x=newx), interval="confidence", level=0.90, type="response")
Error in eval(expr, envir, enclos) : object 'lg.std.len' not found

私は次のようにlmを実行しようとしましたlm(b.div$chao1.ave ~ b.div$lg.std.len)が、その後、predict()newdataと変数の長さが異なるという警告が表示されます。そこで、上記の方法を試しましたpredict()が、オブジェクトを認識しないというエラーが表示されます。修正方法を教えてください。

4

1 に答える 1

5

Predictは、newdataが同じ列名を持つことを想定しています(reg.lenの式と一致するため)。newdata仕様では、式の一部ではない「x」に変更しています。

dat <- data.frame(y=rnorm(50),lg.std.len=sample(10:15,50,replace=TRUE))
reg.len <- lm(y ~ lg.std.len,data=dat)

newx <- seq(0.6, 1.4, 0.01)
prd.len <- predict(reg.len, newdata=data.frame(lg.std.len=newx),
                   interval="confidence", level=0.90, type="response")

重要な部分はnewdata=data.frame(lg.std.len=newx)

于 2012-10-16T21:31:02.207 に答える