什么是tibble
简而言之tibble是data.frame的一种形式,语法和data.frame较为相似,其实大部分功能都与data.frame相似。tibble来自于tidyverse生态系统中的tibble包。
依照官网上说的,tibble与data.frame的最大不同在于两点:1.print;2.子集的索引。
关于这两点我们来动手实践一下子:
我们利用已存在的数据集做个测试(mtcars),我们把它print出来。
library(tibble)
dt = as_tibble(mtcars)
dt
一般只显示前十行,而我们看看data.frame
df = data.frame(mtcars)
df
而它的数据结构可以看到是这样的:
class(dt)
[1] "tbl_df" "tbl" "data.frame"
接下来我们再看看取子集:
dt$mpg #按名称取
dt[["mpg"]]#按名称取,双引号引起来
dt[[1]]#按位置取
还有管道提取操作,只不过要加上占位符.(英文状态下的.)
dt %>% .$mpg
#这个data.frame和tibble都可以操作
tibble与data.frame最大的区别
这里参考了有一篇博客的例子://www.greatytc.com/p/8b509f246cf5
df$x #x不完全匹配会被提取
[1] a
Levels: a
df[, "xyz"]
[1] a
Levels: a
df[, c("abc", "xyz")]
abc xyz
1 1 a
tb <- as.tibble(df)
tb$x #不完全匹配会报错
NULL
Warning message:
Unknown or uninitialised column: 'x'
tb[, "xyz"]
# A tibble: 1 x 1
xyz
<fct>
1 a
tb[, c("abc", "xyz")]
# A tibble: 1 x 2
abc xyz
<dbl> <fct>
1 1 a