R为什么Tibble的列表显示为Tibble的列表,而Tibble的向量显示为Tibble的单独列?
library(tidyverse)
t1 <- tibble(num = 1:7, ll = letters[1:7])
t2 <- tibble(num = 8:14, ll = letters[8:14])
t3 <- tibble(num = 15:21, ll = letters[15:21])
vecs <- c(t1, t2, t3)
lis <- list(t1, t2, t3)
vecs %>% str
#> List of 6
#> $ num: int [1:7] 1 2 3 4 5 6 7
#> $ ll : chr [1:7] "a" "b" "c" "d" ...
#> $ num: int [1:7] 8 9 10 11 12 13 14
#> $ ll : chr [1:7] "h" "i" "j" "k" ...
#> $ num: int [1:7] 15 16 17 18 19 20 21
#> $ ll : chr [1:7] "o" "p" "q" "r" ...
lis %>% str
#> List of 3
#> $ : tibble [7 × 2] (S3: tbl_df/tbl/data.frame)
#> ..$ num: int [1:7] 1 2 3 4 5 6 7
#> ..$ ll : chr [1:7] "a" "b" "c" "d" ...
#> $ : tibble [7 × 2] (S3: tbl_df/tbl/data.frame)
#> ..$ num: int [1:7] 8 9 10 11 12 13 14
#> ..$ ll : chr [1:7] "h" "i" "j" "k" ...
#> $ : tibble [7 × 2] (S3: tbl_df/tbl/data.frame)
#> ..$ num: int [1:7] 15 16 17 18 19 20 21
#> ..$ ll : chr [1:7] "o" "p" "q" "r" ...
创建于2023-03-22带有reprex v2.0.2
我希望列表和向量被同样对待。
1条答案
按热度按时间5kgi1eie1#
c
只是删除tibble/data.frame
类,并返回构建它的基础list
结构。如果recursive = TRUE,则函数递归地通过列表(和对列表)下降,将所有元素组合成一个向量。
因此,我们得到一个
list
的向量,而不仅仅是一个向量其中,as
list
将结构包裹在list
内部