Хранить выходные данные для циклов в Dataframe R

Я пытаюсь сохранить результаты двух циклов for в кадре данных.

    comp <- c(mp, ct, n158, out)
    df <- data.frame()
    for (i in length(comp)){
      lst <- comp[i]
      d <- data.frame()
      for (t in seq(1, sapply(lst, length))){
        ob <- sapply(lst, function(m) m[t] ) 
        dt <- train_data[(train_data$ADDR_POSTALCODE == as.numeric(ob)),]
        dt$AREA <- names(lst)
        d <- rbind(d, dt)
      }
      df <- rbind(df, d)
    }

В моем коде d и df содержат одинаковые значения, потому что результаты первого цикла не объединяются. Комп список из 4

List of 4
 $ MP    : num [1:3] 94107 94110 94114
 $ Center: num [1:3] 94102 941103 941104
 $ 158   : num 94158
 $ Outer : num [1:4] 94112 94122 94132 94143

Df содержит только значения для последнего списка "external", но цикл должен хранить результаты для всех четырех списков. Кто-нибудь знает, где ошибка, я просто не могу понять. заранее спасибо

1 ответ

Решение

У вас есть ошибка в строке ниже (ее повторяется только один раз со значением 4):

for (i in length(comp)){

эта строка должна быть:

for (i in 1:length(comp)){
Другие вопросы по тегам