我想擬合更寬的x範圍的數據並預測y值。預測更大範圍
讓我們假設我有'IRIS的數據集,並從該post
library(dplyr)
cc <- iris %>%
group_by(Species) %>%
do({
mod <- nlsLM(Sepal.Length ~ k*Sepal.Width/2+U, start=c(k=10,U=5), data = ., trace=F, control = nls.lm.control(maxiter=100))
pred <- predict(mod, newdata =.["Sepal.Width"])
data.frame(., pred)
})
使用下面的數據進行預測這是擬合圖
我想,以配合這個數據更寬Sepal width
範圍使得
new.range<- data.frame(x=seq(2,10,length.out=20))
和修改腳本
pred <- predict(mod, newdata =new.range)
繪製的(功能new.range擬合
library(ggplot2)
ggplot(cc,aes(y=Sepal.Length,x=Sepal.Width ,col=factor(Species)))+
geom_point()+
facet_wrap(~Species)+
geom_line(aes(x=new.range,y=pred),size=1)
錯誤(...,row.names = NULL,check.rows = FALSE, check.names = TRUE,:參數意味着不同的行數: 20,150
我不明白爲什麼要這樣做錯誤。我想pred
從new.range
計算,所以他們應該有相同的長度?
類似的帖子
trouble-with-predict-function-in-r
predict-maybe-im-not-understanding-it?
你需要調用'cc $ mod'而不是mod嗎? – troh
@troh當我嘗試cc $ mod時,'預測中的錯誤(mod,newdata = new.range):object'mod'not found' – Alexander