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



我正在尝试使用插入符号包来交叉验证我制作的模型。它取决于 3 个变量,但我使用的数据集远不止于此。为了重现一个更精确的例子,我做了变量 b c d 和 e,但只使用 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, 
))

这会产生错误:请确保y是因子或数值

我已经尝试了几种方法来改变y,但没有运气。有人从经验中知道为什么这不起作用吗?我已经用谷歌搜索了几个小时,找不到完全相同的问题。

你应该使用公式(和data参数(xy参数,你混合了两者。因此,您可以将公式与以下内容一起使用:

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

(你不需要写df$ydf$a等,因为你提供了data参数,所以 R 知道查看该数据帧(

最新更新