我将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在重命名变量方面存在问题。我的问题不同,因为我正在尝试使用预测值创建一个新列。