R のアプリケーションを使用した統計学習の紹介の結果を複製しようとしています。具体的には、セクション 6.5.3 のラボです。ラボのコードに正確に従いました:
library("ISLR")
library("leaps")
set.seed(1)
train = sample(c(TRUE, FALSE), nrow(Hitters), rep = TRUE)
test = (!train)
regfit.best = regsubsets(Salary ~., data = Hitters[train,], nvmax= 19)
test.mat = model.matrix(Salary~., data = Hitters[test,])
val.errors = rep(NA, 19)
for (i in 1:19){
coefi= coef(regfit.best, id = i)
pred=test.mat[,names(coefi)]%*%coefi
val.errors[i]=mean((Hitters$Salary[test]-pred)^2)
}
これを実行すると、まだ次のエラーが発生します。
Warning message:
In Hitters$Salary[test] - pred :
longer object length is not a multiple of shorter object length
Error in mean((Hitters$Salary[test] - pred)^2) :
error in evaluating the argument 'x' in selecting a method for function 'mean': Error: dims [product 121] do not match the length of object [148]
val.errors は 19 個の NA のベクトルです。
私はまだRと検証アプローチに比較的慣れていないので、これらの次元が異なる理由が正確にはわかりません.