collection <- data.frame(col1=X1,col2=X2,col3=X3,col4=X4)
k <- 5
ind <- sample(seq(1,k), length(X1), replace=TRUE)
test_ind = which(ind==1)
train<-collection[-test_ind,]
fit<-lm(X1~poly(X2,2,raw=T)+X3+X4+X2:X3,data=train)
model1_resid<-predict(fit,collection[test_ind,2:4])
警告信息:
“newdata”有 105 行,但找到的变量有 444 行
顺便说一句:长度(test_ind)是105并且nrow(train)= 444
我打算运行交叉验证,但是上面的代码会生成警告,我已经按照本论坛中的其他帖子进行了子集设置,然后才进入 lm 函数,为什么仍然有警告?任何人都可以指出错误吗?谢谢
我认为您需要使用相同的变量名称,因此如果您想使用第 2、3、4 列进行预测,则名称应为 X1、X2、X3,因为它们用于模型(而不是 col2、col3 和 col4)就像你一样)。
例如,在预测调用之前尝试 colnames(collection) = c("X0", "X1", "X2", "X3") ,它应该可以工作(尽管我不明白你是否真的想使用 col2, col3和 col4 用于预测)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)