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列。 –