一、创建tibble
特殊字符做列名时使用 反引号 而不是双引号或单引号
library(tidyverse)
as_tibble(iris) # as_tibble转换数据框为tibble格式
tibble( # 这种方式创建会自动将长度为1的数据扩展,并立即使用新的变量进行计算
x = 1:5,
y = 1,
z = x ^ 2 + y
)
tibble( # tibble中允许列名不以字母开头,允许列名包括特殊字符,用时需要用 *反引号*
`:)` = "smile",
` ` = "space",
`2000` = "number"
)
tribble( # 可以对少量数据进行转化,列标题以~开头定义,条目以逗号分隔
~x, ~y, ~z,
"a", 2, 3.6,
"b", 1, 8.5
)
# 使用as.data.frame()可以重新转换为data.frame
二、tibble和data.frame比较
1.打印优化,只显示前10行,列自动适应屏幕宽度,同时输出列的数据类型,适合大数据集
nycflights13::flights # tibble输出形式
nycflights13::flights %>% # 当然也可以控制输出的行列数
print(n = 10, width = Inf)
nycflights13::flights %>% # 同样可以和data.frame一样查看整个数据集
view()
options(tibble.print_max = 5, tibble.print_min = 2) # 控制默认显示行数,至少2行,至多五行
options(tibble.print_min = Inf) # 默认显示所有行
options(tibble.width = Inf) # 默认显示所有列
2.取子集
## 提取列方法
nycflights13::flights$year
nycflights13::flights[["year"]]
nycflights13::flights[[1]]
nycflights13::flights[,1]
## 提取行方法
nycflights13::flights[1,]
## 注意在管道中使用需要用到特殊占位符.
nycflights13::flights %>% .$year