#r
#r
Вопрос:
Я новичок в R. Я попытался построить модель, используя часть выборок, и спрогнозировать ответ, используя остальные выборки. Но когда я использую predict(), я получил предупреждающее сообщение:
в ‘newdata’ было 152 строки, но найденные переменные имеют 354 строки
Я искал некоторые ответы, но я все еще не могу понять T.T. Пожалуйста, помогите
library(MASS)
data(Boston)
n <- nrow(Boston)
n_train <- round(.70*n)
train_set <- sample(n,size=n_train,replace = FALSE)
x <- cbind(Boston$lstat,log(Boston$lstat))
y <- Boston$medv
x_train <- x[train_set,]
y_train <- y[train_set]
x_test <- x[-train_set,]
y_test <- y[-train_set]
lm_temp <- lm(y_train~x_train)
y_test_hat <- predict(lm_temp,newdata=data.frame(x_test))
Ответ №1:
Похоже, что R запутывается, когда вы передаете матрицу в качестве независимых переменных, но тогда для функции predict требуется фрейм данных (который представляет собой список).
Вы можете решить проблему, запустив свой lm на фрейме данных
library(MASS)
data(Boston)
n <- nrow(Boston)
n_train <- round(.70*n)
train_set <- sample(n,size=n_train,replace = FALSE)
data <- Boston[ , c('medv', 'lstat')]
data$loglstat <- log(data$lstat)
train <- data[train_set, ]
test <- data[-train_set,]
lm_temp <- lm(medv ~ ., data = train)
y_test_hat <- predict(lm_temp,newdata=test)