R插入符号包,错误:请确保'y'是因子或数值

R插入符号包,错误:请确保'y'是因子或数值,r,linear-regression,modeling,cross-validation,r-caret,R,Linear Regression,Modeling,Cross Validation,R Caret,我正在尝试使用插入符号包来交叉验证我制作的模型。这取决于3个变量,但我使用的数据集远不止这些。为了重现一个更精确的例子,我制作了变量a b c d和e,但只使用a b和c来预测 a <- rnorm(10) b <- rnorm(10) c <- rnorm(10) d <- rnorm(10) e <- rnorm(10) y <- rnorm(10) df <- data.frame(a,b,c,d,e,y, stringsAsFactors=FAL

我正在尝试使用插入符号包来交叉验证我制作的模型。这取决于3个变量,但我使用的数据集远不止这些。为了重现一个更精确的例子,我制作了变量a b c d和e,但只使用a b和c来预测

a <- rnorm(10)
b <- rnorm(10)
c <- rnorm(10)
d <- rnorm(10)
e <- rnorm(10)
y <- rnorm(10)
df <- data.frame(a,b,c,d,e,y, stringsAsFactors=FALSE)

library(caret)
model <- train(
df$y ~ df$a + df$b + df$c, x = df,
method = "lm",
trControl = trainControl(
method = "cv", number = 10,
verboseIter = TRUE, 
))

a您应该使用公式(和
数据
参数)或
x
y
参数,您将两者混合使用。因此,您可以使用以下公式:

model <- train(
    y ~ a + b + c, data = df,
    method = "lm",
    trControl = trainControl(
        method = "cv", number = 10,
        verboseIter = TRUE, 
    ))

model如果有人看到这一点,在从“x”更改为“data”后,仍然存在使用df$y~df$a+df$b+df$c导致的错误,但是在将df$notation更改为简单的:y~a+b+c后,该错误得到了修复