<span style="font-size:1.50em;"><b>R tibble简介</b></span>
<img src="https://upload.jianshu.io/users/upload_avatars/19396348/bd7eda85-b396-4421-b859-ec7b6e5ffb11.png?imageMogr2/auto-orient/strip|imageView2/1/w/96/h/96">
小潤澤
字数 227 · 阅读 12019-12-19 19:51
<span style="font-size:1.50em;"><b>什么是tibble</b></span>
简而言之tibble是data.frame的一种形式,语法和data.frame较为相似,其实大部分功能都与data.frame相似。tibble来自于tidyverse生态系统中的tibble包。<br>
依照官网上说的,tibble与data.frame的最大不同在于两点:1.print;2.子集的索引。
关于这两点我们来动手实践一下子:<br>
我们利用已存在的数据集做个测试(mtcars),我们把它print出来。
library(tibble) dt = as_tibble(mtcars) dt
<img src="https://upload-images.jianshu.io/upload_images/19396348-7458789b565459a5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/575/format/webp">
tibble<br>
一般只显示前十行,而我们看看data.frame
df = data.frame(mtcars) df
<img src="https://upload-images.jianshu.io/upload_images/19396348-b60ac5510b595339.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/565/format/webp">
data.frame
而它的数据结构可以看到是这样的:
class(dt) [1] "tbl_df" "tbl" "data.frame"
接下来我们再看看取子集:
dt$mpg #按名称取 dt[["mpg"]]#按名称取,双引号引起来 dt[[1]]#按位置取
<img src="null">
image.png
还有管道提取操作,只不过要加上占位符.(英文状态下的.)
dt %&gt;% .$mpg #这个data.frame和tibble都可以操作
<span style="font-size:1.50em;"><b>tibble与data.frame最大的区别</b></span>
这里参考了有一篇博客的例子:<a href="https://www.jianshu.com/p/8b509f246cf5">https://www.jianshu.com/p/8b509f246cf5</a>
df$x #x不完全匹配会被提取 [1] a Levels: a df[, "xyz"] [1] a Levels: a df[, c("abc", "xyz")] abc xyz 1 1 a tb &lt;- as.tibble(df) tb$x #不完全匹配会报错 NULL Warning message: Unknown or uninitialised column: 'x' tb[, "xyz"] # A tibble: 1 x 1 xyz &lt;fct&gt; 1 a tb[, c("abc", "xyz")] # A tibble: 1 x 2 abc xyz &lt;dbl&gt; &lt;fct&gt; 1 1 a
<div align="center" >赞<br>
</div><br>
<div align="center" >小礼物走一走,来简书关注我<br>
</div><br>
赞赏支持
<div align="left" >3DEXPERIENCE——3D方案解决专家·达索系统<br>
</div><br>
广告<br>