1
我已閱讀關於命名變量的其他帖子,並嘗試實現答案,但仍然爲我想運行現有模型的新數據獲取太多值。這裏是工作示例代碼:r預測函數返回太多的值
set.seed(123)
mydata <- data.frame("y"=rnorm(100,mean=0, sd = 1),"x"=c(1:100))
mylm <- lm(y ~ x, data=mydata)
# ok so mylm is a model on 100 points - lets look at it and the data
par(mfrow=c(2,2))
plot(mylm)
par(mfrow=c(1,1))
predvals <- predict(mylm, data=mydata)
plot(mydata$x,mydata$y)
lines(predvals)
這裏沒有驚喜 - 通過生成點的直線 - 都是100個觀察值。現在我生成20個具有完全相同名稱的新數據,當我通過predict()運行新數據時,我期望得到20分,而我得到100分。我錯過了什麼?讓我瘋狂....
newdata <- data.frame("y"=rnorm(20,mean=0, sd = 1), "x"=c(1:20))
predvals <- predict(mylm, data=newdata)
length(newdata$y)
length(predvals)
# quick -not elegant - way to look at it:
plot(predvals)
lines(newdata$x,newdata$y)
我需要告訴predict()只使用20點或類似的東西嗎?
哈!我知道我錯過了一些明顯的東西!非常感謝 - 這會讓我的週末變得更加快樂! – chris
樂意幫忙!這發生在我們最好的:) – David
謝謝!我遇到了同樣的問題,很高興在這裏找到答案。 – jochen