Подтвердить что ты не робот

R - добавить кадр данных в список

Как добавить фрейм данных в список в R? Я пробую следующий код.

Сначала я создаю кадр данных из файла csv (любой файл csv будет делать)

> a <- read.csv(csvFile)
> class(a)
[1] "data.frame"

Итак, у меня есть кадр данных, называемый "a" . Теперь я создаю список с одним символом, как показано ниже.

> b <- list("hello world")

Теперь я добавляю свой кадр данных "a" в список b, как показано ниже.

> b[[length(b)+1]] <- a
> class(b)
[1] "list"
> length(b)
[1] 2

пока что так хорошо. Список b теперь имеет 2 элемента (символьная строка "hello world" и кадр данных a). Теперь кусок, который меня озадачивает, следующий код

> class(b[2])
[1] "list"

почему класс (b [2]) отображается в виде списка вместо кадра данных? Я хочу иметь возможность добавить свой кадр данных "a" в список "b", не будучи неявным образом преобразованным в список. Может ли кто-нибудь помочь мне понять, как это сделать?

4b9b3361

Ответ 1

Это описано в ?"[" (или ?Extract) в разделе "Рекурсивные (список) объектов" (выделено курсором):

Индексирование по '[похоже на атомные векторы и выбирает список указанный элемент (ы).

Оба параметра [[и '$ выбирают один элемент списка.

Так как b[2] возвращает список, вы хотите использовать [[, т.е. b[[2]].