在R中使用predict()时出错:newdata的行数少于找到的变量数

时间:2015-05-23 17:46:49

标签: r least-squares predict

我将R中的predict()函数应用于测试集的线性模型,但得到的错误是找到的变量有更多的行。

在我的原始数据集中,训练集集有55个变量(45个二进制和10个数字),测试集有52个(45个二进制和7个数字)。训练集涵盖了该月的前20天,而测试则涵盖了最后10天。

目的:我正在尝试预测测试集所涵盖的变量并且在训练集期间可用。

我使用lm()函数拟合训练数据集,并使用predict()测试预测值。发生错误是因为训练数据比测试具有更多的观察和变量。

以下是获得相同错误的可重现示例:

> #Training set
> Year <- c(0,1)
> set.seed(1)
> Year2011 <- sample(Year, size = 3000, replace = TRUE)
> Year2011 <- as.integer(Year2011)
> set.seed(3)
> Year2012 <- sample(Year, size = 3000, replace = TRUE)
> Year2012 <- as.integer(Year2012)
> Temp <- rnorm(3000, mean = 2, sd = 1)
> casual <- rnorm(3000, mean = 4, sd = 1) 
> registered <- rnorm(3000, mean = 10, sd = 5) 
> b <- data.frame(Year2011, Year2012, casual, Temp, registered)

编辑:我在测试和训练集中使列具有相同的名称,但是出现了新的错误

编辑2:我在名为b的{​​{1}}中添加了一个带有registered值的向量,但却出现了同样的错误

解决方案:我向名为NA的{​​{1}}添加了0值的向量。

b

我看到了类似的帖子here,但是OP在重命名变量方面存在问题。我的问题不同,因为我正在尝试使用预测值创建一个新列。

0 个答案:

没有答案