Я пытаюсь создать списки в R. Но я застрял. Вот мой R-код.Создание списка в цикле for в R
modellist_nnet <- list()
window_lengths <- c(50, 100)
for(i in 1:ncol(dep_var_normalized)) {
for (j in window_lengths){
knnGrid <- expand.grid(k = c(1, 2, 5, 10, 20))
timecontrol <- trainControl(method = 'timeslice', initialWindow = j, horizon = 1, summaryFunction=absretSummary, selectionFunction = "best",
returnResamp = 'final', fixedWindow = TRUE, savePredictions = 'final')
cl <- makeCluster(4)
registerDoParallel(cl)
set.seed(503)
variable_merge <- merge(dep_var_normalized[,i], indep_var_selected[[i]], all=F)
variable_merge <- as.data.frame(variable_merge)
modellist_nnet[[i]]<- train(variable_merge[,-1], variable_merge[,1], method = "knn",
trControl = timecontrol, tuneGrid = knnGrid, preProcess = c('center', 'scale'))
stopCluster(cl)
cat("Window: ", j, "dep_var:", i)
}
}
Я хочу создать список («modellist_nnet»), который содержит результаты обучения. результат только что имеет длину окна 100 («j») для каждого «i» Существует ли какой-либо возможный способ создания списков, имеющих как длину окна («j») (50, 100) для каждого «i «?
Никакая проблема !! :) – thepule
У меня возникла проблема ... «modellist_nnet [[j]]» выводит результаты в modellist_nnet [[50]], modellist_nnet [[100]]. И содержит дополнительные списки, такие как modellist_nnet [[1]], modellist_nnet [[2]] .. которые имеют не значения ... Как я могу исправить эту проблему? ... –
Ухмм, вы изменили второй цикл (по j) как я это сделал в своем ответе, или вы сохранили свою оригинальную версию? Кажется, что-то связано с тем, как определяется j. (Обратите внимание, что я также соответствующим образом изменил определение параметра * initialWindow *). – thepule