R: Почему append () назначает список каждому столбцу фрейма данных, а не объекту фрейма данных? - PullRequest
1 голос
/ 19 июня 2020

Обычно используется 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...