参见:https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/prog-type-df.html

    tibble类型是一种改进的数据框类型的数据,可以通过readr 包实现读取。

    1. library(tibble)
    2. library(readr)
    3. t.class <- read_csv("class.csv")
    4. ## Parsed with column specification:
    5. ## cols(
    6. ## name = col_character(),
    7. ## sex = col_character(),
    8. ## age = col_double(),
    9. ## height = col_double(),
    10. ## weight = col_double()
    11. ## )

    tibble类型的类属依次为tbl_df, tbl, data.frame,用as_tibble()可以将一个数据框转换为tibble,或者直接通过tibble 像创建数据框般创建tibble 数据框:

    1. t.bp <- tibble(
    2. `序号`=c(1,5,6,9,10,15),
    3. `收缩压`=c(145, 110, "未测", 150, "拒绝", 115))
    4. t.bp

    我们可以用对数据框的相同操作来处理tibble 类型的数据。

    除此之外,tibble 非常喜欢csv 数据,因此也可以像创建csv 数据般,直接通过tribble 创建:

    1. t.bp2 <- tribble(
    2. ~`序号`,~`收缩压`,
    3. 1,145,
    4. 5,110,
    5. 6,NA,
    6. 9,150,
    7. 10,NA,
    8. 15,115
    9. )
    10. t.bp2
    11. ## # A tibble: 6 x 2
    12. ## 序号 收缩压
    13. ## <dbl> <dbl>
    14. ## 1 1 145
    15. ## 2 5 110
    16. ## 3 6 NA
    17. ## 4 9 150
    18. ## 5 10 NA
    19. ## 6 15 115

    另外,tidyr::expand_grid() 函数提供了另外一种可能,可以通过指定n 个分组,细分出多个因素完全搭配并重复的表格,比如:

    1. d4 <- tidyr::expand_grid(
    2. group=1:3,
    3. subgroup=1:2,
    4. obs=1:2)
    5. print(d4)
    6. ## # A tibble: 12 x 3
    7. ## group subgroup obs
    8. ## <int> <int> <int>
    9. ## 1 1 1 1
    10. ## 2 1 1 2
    11. ## 3 1 2 1
    12. ## 4 1 2 2
    13. ## 5 2 1 1
    14. ## 6 2 1 2
    15. ## 7 2 2 1
    16. ## 8 2 2 2
    17. ## 9 3 1 1
    18. ## 10 3 1 2
    19. ## 11 3 2 1
    20. ## 12 3 2 2

    结果的数据框d有三个变量: group是大组,共分3个大组,每组4个观测; subgroup是子组,在每个大组内分为2个子组,每个子组2个观测。 共有个12 观测(行)。

    另外,tibble类型允许其中的列是列表类型, 这样, 该列的每个元素就可以是复杂类型, 比如建模结果(列表), 元素之间可以保存不等长的值。 如:

    1. tibble(x = 1:3,
    2. y = list(1, 1:2, 1:3))
    3. ## # A tibble: 3 x 2
    4. ## x y
    5. ## <int> <list>
    6. ## 1 1 <dbl [1]>
    7. ## 2 2 <int [2]>
    8. ## 3 3 <int [3]>