我在尝试使用R中的spls
包时遇到问题。我是新手,并且一直收到以下错误:
library(spls)
data(iris)
TrainData <- iris[,1:4]
TrainClasses <- iris[,5]
cv1 <- cv.spls(TrainData,TrainClasses,eta = seq(0.1,0.9,0.1), K = c(1:3))
# eta = 0.1
# Error in one %*% y : requires numeric/complex matrix/vector arguments
答案 0 :(得分:2)
似乎cv.spls
并不想为y矢量的响应设置一个因子变量。这似乎有效
TrainClasses <- model.matrix(~Species+0, data=iris)
cv1 <- cv.spls(TrainData, TrainClasses,
eta = seq(0.1,0.9,0.1), K = c(1:3))
或
TrainClasses <- as.numeric(iris[,5])
cv1 <- cv.spls(TrainData, TrainClasses,
eta = seq(0.1,0.9,0.1), K = c(1:3))
取决于您想要如何解释物种。