0
我试图使用leave-one-out(LOO)交叉验证来预测来自PCA的一些数据。R预测单行
的prcomp
顺利,但是当我到predict
落入函数得到不高兴
error: 'newdata' must be a matrix or data frame
因为我供给载体(即,单一的行),而不是一个矩阵(即多行)。
我试过as.data.frame
和as.matrix
和各品种上,但我仍然得到错误
error: 'newdata' does not have named columns matching one or more of the original columns`
在我的例子这里loo
是LOO指数和mydata
和myinfo
分别包含数据和元数据。
tdata = mydata[-loo,]
tinfo = myinfo[-loo,]
vdata = mydata[loo,]
vinfo = myinfo[loo,]
p = prcomp(tdata)
predict(p, newdata = vdata)
你有没有尝试过做'as.data.frame'后设置'colnames'? 'colnames(vdata)< - colnames(tdata)'。 – ytk
这个问题似乎是因为R将1xn和nx1矩阵视为相同,数据框最后只有1列。 –