r预测函数返回太多值 [英] r predict function returning too many values

查看:88
本文介绍了r预测函数返回太多值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经阅读了其他有关命名变量的文章,并尝试实现答案,但是对于要用于运行现有模型的新数据而言,仍然获得了太多的值.这是有效的示例代码:

I've read other postings regarding named variables and tried implementing the answers but still get too many values for my new data that I want to run my existing model on. Here is working example code:

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点.我想念的是什么!让我发疯....

No surprises here - a straight line through generated points - both 100 observations in length. Now I generate 20 points of new data with the exact same names and when I run the new data through predict() I expect to get 20 points and instead I get 100. What am I missing! Driving me crazy....

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点或类似的点?

Do I need to tell predict() to only use 20 points or something like that?

推荐答案

您的问题在predvals <- predict(mylm, data=newdata)中.

正确的呼叫是predict(mylm, newdata=newdata). R中的predict()函数采用命名参数newdata,而不是data.

The correct call is predict(mylm, newdata=newdata). The predict() function in R takes a named argument newdata, not data.

这篇关于r预测函数返回太多值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆