R返回错误:下标超出范围

R返回错误:下标超出范围,r,plot,statistics,mse,R,Plot,Statistics,Mse,我一直在研究R ISLR学院数据集,我希望在训练集上执行最佳子集选择,并绘制与每个大小的最佳模型相关联的训练集MSE library(ISLR) library(leaps) data(College) head(College) #splitting the data into 70/30 subset<- sample(nrow(college)*0.7) collegetrain<- college[subset,] collegetest<-college[-subs

我一直在研究R ISLR学院数据集,我希望在训练集上执行最佳子集选择,并绘制与每个大小的最佳模型相关联的训练集MSE

library(ISLR)
library(leaps)
data(College)
head(College)

#splitting the data into 70/30
subset<- sample(nrow(college)*0.7)
collegetrain<- college[subset,]
collegetest<-college[-subset,]

库(ISLR)
图书馆(飞跃)
数据(学院)
校长(学院)
#将数据拆分为70/30
子集
regfit.full
regfit.full <- regsubsets(apps ~ ., data = college.train, nvmax = 20)
train.mat <- model.matrix(apps ~ ., data = college.train, nvmax = 20)
val.errors <- rep(NA, 20)
for (i in 1:20) {
coefi <- coef(regfit.full, id = i)
pred <- train.mat[, names(coefi)] %*% coefi
val.errors[i] <- mean((pred - college.train$y)^2)
}
plot(val.errors, xlab = "Number of predictors", ylab = "Training MSE", pch = 19, type = "b")
regfit.full <- regsubsets(Apps ~ ., data = collegetrain, nvmax = 20)
train.mat <- model.matrix(Apps ~ ., data = collegetrain, nvmax = 20)

val.errors <- rep(NA, 20)
for (i in 1:17) {
  coefi <- coef(regfit.full, id = i)
  pred <- train.mat[, names(coefi)] %*% coefi
  val.errors[i] <- mean((pred - collegetrain$Apps)^2)
}

plot(val.errors, xlab = "Number of predictors", ylab = "Training MSE", 
     pch = 19, type = "b")