data_frame
(diversement appelés tibbles
, tbl_df
, tbl
) prennent nativement en charge la création de colonnes de liste à l'aide de l'élément data_frame
Constructeur. Pour les utiliser, chargez l'une des nombreuses bibliothèques qui les contiennent, telles que tibble
, dplyr
o tidyverse
.
> data_frame(abc = letters[1:3], lst = list(1:3, 1:3, 1:3))
# A tibble: 3 × 2
abc lst
<chr> <list>
1 a <int [3]>
2 b <int [3]>
3 c <int [3]>
Ils sont en fait data.frames
sous le capot, mais quelque peu modifié. Ils peuvent presque toujours être utilisés normalement data.frames
. La seule exception que j'ai trouvée est que lorsque les gens font des contrôles de classe inappropriés, ils causent des problèmes :
> #no problem
> 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
> #uh oh
> 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
> #dont use if with improper testing!
> 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
> #proper
> data_frame(x = 1:3, y = 1:3) %>% inherits("data.frame")
[1] TRUE
Je vous recommande de les lire dans R 4 Data Science (gratuit).