2012-10-16 1 views
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(b.div$chao1.ave ~ b.div$lg.std.len)는하지만, predict()는 newData의 변수가 서로 다른 길이가 있다는 경고를 제공합니다. 그래서 위의 방법을 시도해 보았습니다. 이제 predict()은 객체를 인식하지 못한다는 오류를줍니다. 고칠 방법, 제발?R : predict.lm() 인식하지 나는이 같은 작품을하고 시도했습니다

+0

입니까? – PeeHaa

+0

eval (expr, envir, enclos) 오류 : 'lg.std.len'개체를 찾을 수 없습니다. – user1751333

답변

5

예측은 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)