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数据科学(免费)中有关它们的文章。