Использование цикла for для создания вложенного списка из большой базы данных - PullRequest
0 голосов
/ 15 апреля 2019

Я работаю с большой базой данных опросов (182545 наблюдений 34 переменных с ежемесячной периодичностью с 2003 по 2019 год). Там где-то от 800 до 1300 респондентов в месяц. Моя конечная цель - обобщить ответы на каждый вопрос (% положительный,% нейтральный,% отрицательный) за каждый месяц, но я считаю проблематичным первый шаг по разделению данных по месяцам.

После загрузки данных я создал вложенный список, который содержит список длины респондентов каждого месяца, используя значение, обозначающее год и месяц. Это сработало, как и ожидалось, но я не могу заполнить список каждого месяца фактическими данными, и я изо всех сил пытаюсь выяснить, где я иду не так.

# extract yearmo unique values

yearmo <- unique(esm$yearmo)

# create main nested list

nest <- as.list(rep("", length(yearmo))) # main nest for 195 months

for(i in 1:length(yearmo)){
  nest[[i]] <- as.list(rep("", length(which(esm$yearmo==yearmo[[i]]))))

}


for(k in 1:(length(nest[[j]][k])-1)){
  for(j in 1:(length(nest[[j]]-1))){
    nest[[j]][k] <- esm[which(esm$yearmo == yearmo[[j]]), ]
  }
}

Ошибка, которую я получаю: Ошибка в гнезде [[j]]: нижний индекс вне границ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...