R tibble简介

什么是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
tibble

一般只显示前十行,而我们看看data.frame

df = data.frame(mtcars)
df
data.frame

而它的数据结构可以看到是这样的:

class(dt)

[1] "tbl_df"     "tbl"        "data.frame"

接下来我们再看看取子集:

dt$mpg  #按名称取
dt[["mpg"]]#按名称取,双引号引起来
dt[[1]]#按位置取
image.png

还有管道提取操作,只不过要加上占位符.(英文状态下的.)

dt %>% .$mpg

#这个data.frame和tibble都可以操作

tibble与data.frame最大的区别

这里参考了有一篇博客的例子:https://www.jianshu.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    

推荐阅读更多精彩内容