为什么预测功能在R软件中打印输出次数过多?
我用R程序创建了一个线性模型。我用这个模型预测了一个新的变量。运行模型,它将打印600次预测输出!(数据集中变量的数量)。 代码如下:为什么预测功能在R软件中打印输出次数过多?,r,linear-regression,predict,R,Linear Regression,Predict,我用R程序创建了一个线性模型。我用这个模型预测了一个新的变量。运行模型,它将打印600次预测输出!(数据集中变量的数量)。 代码如下: load(sports) summary (sports) ls(sports) fit = lm(sport_score ~ sport_votes + sport_rating , data = sports) summary(fit) newdata = data.frame( sport_vote = 80, sport_rating = 7.7)
load(sports)
summary (sports)
ls(sports)
fit = lm(sport_score ~ sport_votes + sport_rating , data = sports)
summary(fit)
newdata = data.frame( sport_vote = 80, sport_rating = 7.7)
predict(fit, newdata, interval="predict")
如何只打印一次输出?应该是:
predict(fit, newdata=newdata, interval="predict")
第一个newdata是参数名。第二个newdata是“value”的符号名“给参数赋值。如果不给
newdata
参数赋值,它只会查找默认值,正如我所说的sports
中的完整案例,predict
的默认行为是为每个完整案例提供预测。如果那不是你想要的。。。然后阅读帮助页面并学习使用newdata
参数。为什么在newdata=data.frame()调用中有data=sports
?这肯定是错误的。拿出它,你应该会没事的。MrFlick我做了,但仍然有同样的问题。你能做dput(head(sports))
并将输出粘贴到你的问题中,以帮助我们重现你的问题吗?你需要制作上面的示例,以便我们可以复制/粘贴到R中来查看问题。可能是您的newdata
data.frame没有您认为的行,或者您指定了一个包含$
的公式(这是不好的)。无论哪种方式,您都可能遗漏了上面示例中的一些重要内容。它仍然会打印600次输出。我无法复制此问题-fit@Zapata:您需要向我们显示str(newdata
>str(newdata)的输出“data.frame”:1个变量中的1个对象:$sepl.Width:num 30它实际上打印的是相同的输出600times@Zapata-听起来不太可能。如果您的newdata
现在根据iris
数据集具有Sepal.Width
,则它不应该返回600个预测。它可能会出错,因为变量不匹配atch或返回iris拥有的150行。我认为您需要开始一个新的R会话,并逐步完成代码。这里有些不对劲。