data_frame
s ( по- разному называют tibbles
, tbl_df
, tbl
) изначально поддерживает создание столбцов списка с помощью data_frame
конструктора. Чтобы использовать их, загрузите с ними одну из многих библиотек, например tibble
, dplyr
или tidyverse
.
> data_frame(abc = letters[1:3], lst = list(1:3, 1:3, 1:3))
abc lst
<chr> <list>
1 a <int [3]>
2 b <int [3]>
3 c <int [3]>
Они действительно находятся data.frames
под капотом, но несколько видоизменены. Их почти всегда можно использовать как обычно data.frames
. Единственное исключение, которое я обнаружил, - это то, что когда люди выполняют несоответствующие проверки классов, они вызывают проблемы:
>
> data.frame(x = 1:3, y = 1:3) %>% class
[1] "data.frame"
> data.frame(x = 1:3, y = 1:3) %>% class == "data.frame"
[1] TRUE
>
> data_frame(x = 1:3, y = 1:3) %>% class
[1] "tbl_df" "tbl" "data.frame"
> data_frame(x = 1:3, y = 1:3) %>% class == "data.frame"
[1] FALSE FALSE TRUE
>
> if(data_frame(x = 1:3, y = 1:3) %>% class == "data.frame") "something"
Warning message:
In if (data_frame(x = 1:3, y = 1:3) %>% class == "data.frame") "something" :
the condition has length > 1 and only the first element will be used
>
> data_frame(x = 1:3, y = 1:3) %>% inherits("data.frame")
[1] TRUE
Я рекомендую прочитать о них в R 4 Data Science (бесплатно).