在使用R开发回归模型时,我有类似于以下内容:
c_lm = lm(trainingset$dependent ~ trainingset$independent)
c_pred = predict(c_lm,testset$independent))
每次我都会从R中得到一个神秘的错误信息:
Warning message:
'newdata' had 34 rows but variables found have 142 rows
这基本上意味着R无法找到测试集数据框中的独立列。这是因为lm公式右侧的确切名称必须在predict中存在。为了修复它,我可以这样做:
tempset = trainingset
c_lm = lm(trainingset$dependent ~ tempset$independent)
tempset = testset
c_pred = predict(c_lm,tempset$independent))
或类似变体,但在我看来这样做非常粗糙。
是否有另一种方法可以清理两者之间的翻译,以便独立变量的数据框在预测中不必与lm中的名称完全相同?
newdata
应该是一个数据框,其中仅包含一列,其变量名与原始lm()
调用中的x
变量名完全匹配。 尝试使用predict(c_lm, newdata=testset)
。 - bdemarest