参见:https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/prog-type-df.html
tibble类型是一种改进的数据框类型的数据,可以通过readr 包实现读取。
library(tibble)library(readr)t.class <- read_csv("class.csv")## Parsed with column specification:## cols(## name = col_character(),## sex = col_character(),## age = col_double(),## height = col_double(),## weight = col_double()## )
tibble类型的类属依次为tbl_df, tbl, data.frame,用as_tibble()可以将一个数据框转换为tibble,或者直接通过tibble 像创建数据框般创建tibble 数据框:
t.bp <- tibble(`序号`=c(1,5,6,9,10,15),`收缩压`=c(145, 110, "未测", 150, "拒绝", 115))t.bp
我们可以用对数据框的相同操作来处理tibble 类型的数据。
除此之外,tibble 非常喜欢csv 数据,因此也可以像创建csv 数据般,直接通过tribble 创建:
t.bp2 <- tribble(~`序号`,~`收缩压`,1,145,5,110,6,NA,9,150,10,NA,15,115)t.bp2## # A tibble: 6 x 2## 序号 收缩压## <dbl> <dbl>## 1 1 145## 2 5 110## 3 6 NA## 4 9 150## 5 10 NA## 6 15 115
另外,tidyr::expand_grid() 函数提供了另外一种可能,可以通过指定n 个分组,细分出多个因素完全搭配并重复的表格,比如:
d4 <- tidyr::expand_grid(group=1:3,subgroup=1:2,obs=1:2)print(d4)## # A tibble: 12 x 3## group subgroup obs## <int> <int> <int>## 1 1 1 1## 2 1 1 2## 3 1 2 1## 4 1 2 2## 5 2 1 1## 6 2 1 2## 7 2 2 1## 8 2 2 2## 9 3 1 1## 10 3 1 2## 11 3 2 1## 12 3 2 2
结果的数据框d有三个变量: group是大组,共分3个大组,每组4个观测; subgroup是子组,在每个大组内分为2个子组,每个子组2个观测。 共有个12 观测(行)。
另外,tibble类型允许其中的列是列表类型, 这样, 该列的每个元素就可以是复杂类型, 比如建模结果(列表), 元素之间可以保存不等长的值。 如:
tibble(x = 1:3,y = list(1, 1:2, 1:3))## # A tibble: 3 x 2## x y## <int> <list>## 1 1 <dbl [1]>## 2 2 <int [2]>## 3 3 <int [3]>
