Обычно используется append
для присвоения объектов следующему индексу списка без указания номера индекса. Основываясь на том, что я видел, предложенном другим, я ожидал, что append
вернет список длиной 1, где первый индекс - это фрейм данных, после добавления фрейма данных в список. Однако вместо этого он возвращает список, длина которого равна количеству столбцов во фрейме данных. Одно из объяснений этого состоит в том, что append
ожидает вектор, но тогда это кажется несколько противоречащим многим из предложенных вариантов использования, которые я видел.
Если append
не должен назначать весь объект, есть ли альтернативная функция для добавления объекта в конец списка? В приведенном ниже минимальном рабочем примере я показываю один способ сделать это с помощью моей собственной функции, но представьте, что для этого есть функция.
# Generate data
foo <- list()
bar <- data.frame(x = 1:3, y = 1:3)
# Returns length-2 list - BAD!
str(append(foo, bar))
# Expected output
foo[[1]] <- bar
str(foo)
# Kludgey alternative
foo[[length(foo) + 1]] <- bar