簡體   English   中英

R:predict.lm()沒有識別對象

[英]R: predict.lm() not recognizing an object

> 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()給出一個錯誤,說它不能識別對象。 怎么解決,好嗎?

Predict期望newdata具有相同的列名(以匹配reg.len中的公式)。 您在新數據規范中將其更改為“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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM