ошибка в R: ошибка несогласованного массива в цикле for - PullRequest
0 голосов
/ 05 октября 2019

Я новичок в R, я ценю любую помощь по следующему коду. Я пытаюсь запустить этот код, чтобы сгенерировать и оценить MSE, рассчитанную на основе различных обучающих / тестовых наборов. Однако, когда я запускаю следующий код, я получаю следующую ошибку:

Ошибка whichSum [,, jSelect] + summary (rsTrain) $ which: несовместимые массивы

Я не уверенна то, что изменить в коде, чтобы он работал. Любая помощь приветствуется.

Спасибо!

dfTmp <- NULL
whichSum <- array(0,dim=c(15,12,4),
  dimnames=list(NULL,colnames(model.matrix(contrib~.,lgmyfrcDat)),
      c("exhaustive", "backward", "forward", "seqrep")))
# Split data into training and test 30 times:
nTries <- 30
for ( iTry in 1:nTries ) {
  bTrain <- sample(rep(c(TRUE,FALSE),length.out=nrow(lgmyfrcDat)))
  # Try each method available in regsubsets
  # to select the best model of each size:
  for ( jSelect in c("exhaustive", "backward", "forward", "seqrep") ) {
    rsTrain <- regsubsets(contrib~.,lgmyfrcDat[bTrain,],nvmax=15,method=jSelect)
    # Add up variable selections:
    whichSum[,,jSelect] <- whichSum[,,jSelect] + summary(rsTrain)$which
    # Calculate test error for each set of variables
    # using predict.regsubsets implemented above:
    for ( kVarSet in 1:15 ) {
      # make predictions:
      testPred <- predict(rsTrain,lgmyfrcDat[!bTrain,],id=kVarSet)
      # calculate MSE:
      mseTest <- mean((testPred-lgmyfrcDat[!bTrain,"contrib"])^2)
      # add to data.frame for future plotting:
      dfTmp <- rbind(dfTmp,data.frame(sim=iTry,sel=jSelect,vars=kVarSet,
      mse=c(mseTest,summary(rsTrain)$rss[kVarSet]/sum(bTrain)),trainTest=c("test","train")))
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...