【发布时间】:2020-03-11 05:33:09
【问题描述】:
第 20 行出现问题:x3 <- lm(Salary ~ ...
as.data.frame.default(data) 中的错误:无法将类'c("train", "train.formula")' 强制转换为 data.frame
如何解决?
attach(Hitters)
Hitters
library(caret)
set.seed(123)
# Define training control
set.seed(123)
train.control <- trainControl(method = "cv", number = 10)
# Train the model
x2 <- train(Salary ~., data = x, method = "lm",
trControl = train.control)
# Summarize the results
print(x)
x3 <- lm(Salary ~ poly(AtBat,3) + poly(Hits,3) + poly(Walks,3) + poly(CRuns,3) + poly(CWalks,3) + poly(PutOuts,3), data = x2)
summary(x3)
MSE = mean(x3$residuals^2)
print("Mean Squared Error: ")
print(MSE)
【问题讨论】:
-
很难说。您没有指出
Hitters的来源(R 上有多个版本)。您没有定义x。但很可能是您尝试在对lm的调用中使用x2作为数据框。train的手册页表明它返回“train类列表”,它不是一个 data.frame。
标签: r machine-learning regression training-data supervised-learning