我第一次尝试使用ropls 包来执行 PLS-DA 和 OPLS-DA 预测模型,正如我在其文档中看到的那样,该算法提供了选项subset="odd",它将数据分成两个大小相等,所以 50%-50%。问题是我需要将我的数据分成 80% 的训练和 20% 的测试,当我阅读时,它说您可以使用所需子集的索引,但我无法做到。我已经尝试手动执行拆分,然后提取索引并在算法中使用该子集,但由于我对编程真的很陌生,我担心我做得不对......它总是告诉我:错误:“子集”必须设置为“奇数”或“x”行号的整数向量
有人能帮我吗?太感谢了!!
到目前为止我尝试过的代码看起来像这样(对不起,如果它是一团糟!):
set.seed(12345)
n_train<-0.8
n<-nrow(cancerx)
train<-sample(n,floor(n*n_train))
trainrf<-cancerx[train,]
testrf<-cancerx[-train,]
#PLS-DA predict
plsda1<-opls(cancerx[-1], cancerx$label, predI=1, subset="train")