2.tibble实现简单数据框

一、创建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

你可能感兴趣的:(2.tibble实现简单数据框)