我试图使用留一法(LOO)交叉验证来预测PCA中的一些数据。
prcomp
表现不错,但是当我来predict
时,该功能会被沮丧
错误:' newdata'必须是矩阵或数据框
因为我提供的是矢量(即单行)而不是矩阵(即多行)。
我已尝试as.data.frame
和as.matrix
及其各种变种,但我仍然遇到错误
错误:' newdata'没有与一个或多个原始列匹配的命名列
在我的示例中,loo
是LOO索引,mydata
和myinfo
分别包含数据和元数据。
tdata = mydata[-loo,]
tinfo = myinfo[-loo,]
vdata = mydata[loo,]
vinfo = myinfo[loo,]
p = prcomp( tdata )
predict(p, newdata = vdata )
答案 0 :(得分:1)
没关系,发现它:
predict(p, newdata = as.data.frame(t(vdata)) )