添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

tibble是tidyverse系列的核心包之一。用来改进R内置数据框存在的许多问题。

比如使用传统的data.frame数据框,数据列多于输出面板的宽度时会多行显示,显得比较乱。再比如传统数据框存在一种情况就是容易把字符串取值当做因子看待。

library(tidyverse) 加载相关核心包。

使用 as_tibble() 将数据框转换成tibble格式。

#使用state.x77数据
head(state.x77)
           Population Income Illiteracy Life Exp Murder HS Grad Frost
Alabama          3615   3624        2.1    69.05   15.1    41.3    20
Alaska            365   6315        1.5    69.31   11.3    66.7   152
Arizona          2212   4530        1.8    70.55    7.8    58.1    15
Arkansas         2110   3378        1.9    70.66   10.1    39.9    65
California      21198   5114        1.1    71.71   10.3    62.6    20
Colorado         2541   4884        0.7    72.06    6.8    63.9   166
as_tibble(state.x77)
# A tibble: 50 x 8
   Population Income Illiteracy `Life Exp` Murder `HS Grad` Frost
        <dbl>  <dbl>      <dbl>      <dbl>  <dbl>     <dbl> <dbl>
 1       3615   3624        2.1       69.0   15.1      41.3    20
 2        365   6315        1.5       69.3   11.3      66.7   152
 3       2212   4530        1.8       70.6    7.8      58.1    15
 4       2110   3378        1.9       70.7   10.1      39.9    65
 5      21198   5114        1.1       71.7   10.3      62.6    20
 6       2541   4884        0.7       72.1    6.8      63.9   166
 7       3100   5348        1.1       72.5    3.1      56     139
 8        579   4809        0.9       70.1    6.2      54.6   103
 9       8277   4815        1.3       70.7   10.7      52.6    11
10       4931   4091        2         68.5   13.9      40.6    60
# ... with 40 more rows, and 1 more variable: Area <dbl>

可以看到tibble格式数据会显示列的类型

tibble格式每次输出的行与列也有所限制每次只显示10行,如果需要显示更多的行可以使用options函数。

也需要注意的是tibble格式数据不带行名。可以看到上面用as_tibble()转化格式后,state.x77数据的行名被NULL了。

如果行名有使用需要的话,使用rownames_to_column()函数可以将行名转化为列变量。

rownames_to_column()函数要求数据的类为数据框。

data <- as.data.frame(state.x77)
data <- rownames_to_column(data)
head(data)
     rowname Population Income Illiteracy Life Exp Murder HS Grad
1    Alabama       3615   3624        2.1    69.05   15.1    41.3
2     Alaska        365   6315        1.5    69.31   11.3    66.7
3    Arizona       2212   4530        1.8    70.55    7.8    58.1
4   Arkansas       2110   3378        1.9    70.66   10.1    39.9
5 California      21198   5114        1.1    71.71   10.3    62.6
6   Colorado       2541   4884        0.7    72.06    6.8    63.9
#tibble
as_tibble(data)
# A tibble: 50 x 9
   rowname Population Income Illiteracy `Life Exp` Murder `HS Grad`
   <chr>        <dbl>  <dbl>      <dbl>      <dbl>  <dbl>     <dbl>
 1 Alabama       3615   3624        2.1       69.0   15.1      41.3
 2 Alaska         365   6315        1.5       69.3   11.3      66.7
 3 Arizona       2212   4530        1.8       70.6    7.8      58.1
 4 Arkans~       2110   3378        1.9       70.7   10.1      39.9
 5 Califo~      21198   5114        1.1       71.7   10.3      62.6
 6 Colora~       2541   4884        0.7       72.1    6.8      63.9
 7 Connec~       3100   5348        1.1       72.5    3.1      56  
 8 Delawa~        579   4809        0.9       70.1    6.2      54.6
 9 Florida       8277   4815        1.3       70.7   10.7      52.6
10 Georgia       4931   4091        2         68.5   13.9      40.6
# ... with 40 more rows, and 2 more variables: Frost <dbl>,
#   Area <dbl>

传统R中要求数据的变量名以字母为开头,tibble也支持变量名为特殊符号或数字为开头,用反引号括起来即可

data <- tibble(
     '11' = 'aa',
     '$' = 'bb'
# A tibble: 1 x 2
  `11`  `$`  
  <chr> <chr>
1 aa    bb  

也可以用tribble函数生成数据框,它的列标题由公式定义(以~开头),数据以逗号分隔。

tribble(
     ~a,~b,~c,
     'q',1,2.5,
     'w',2,3.5
# A tibble: 2 x 3
  a         b     c
  <chr> <dbl> <dbl>
1 q         1   2.5
2 w         2   3.5

取子集方面:

传统取子集的方式:

  • 根据变量名data$x或data[[‘x’]]
  • 根据变量下标位置data[[1]],

如果使用管道符号则需要使用特殊的占位符.
.代表着整个数据框本身。

data <- tibble(
     x = rnorm(10),
     y = rnorm(10)
data %>% .$x
 [1] -0.4378535 -0.2183096  0.8651972 -0.8453259  1.1069948  0.6185434
 [7]  0.5472147  0.2016456  0.1665539 -0.3260650
data %>% .[[1]]
 [1] -0.4378535 -0.2183096  0.8651972 -0.8453259  1.1069948  0.6185434
 [7]  0.5472147  0.2016456  0.1665539 -0.3260650

最后,可以用class()函数查看数据框的类

class(data)
[1] "tbl_df"     "tbl"        "data.frame"
                    tibble是tidyverse系列的核心包之一。用来改进R内置数据框存在的许多问题。比如使用传统的data.frame数据框,数据列多于输出面板的宽度时会多行显示,显得比较乱。再比如传统数据框存在一种情况就是容易把字符串取值当做因子看待。使用library(tidyverse)加载相关核心包。使用as_tibble()将数据框转换成tibble格式。#使用state.x77数据hea...
**data.frame:**最基本,大多函数的设计基于此种结构;读写速度一般
**data.table:**在data.frame上的改进,读写速度最快;加入了索引操作,结合索引数据处理更方便
**tibble:**主要在dplyr和tibble包中有效,主要关注于列list,支持整洁格式;数据进行懒加载
可以单独加载也可以通过tidyverse套装进行加载
library(p...
data.frame:最基本,大多函数的设计基于此种结构;读写速度一般
	data.table:在data.frame上的改进,读写速度最快;加入了索引操作,结合索引数据处理更方便
	tibble:主要在dplyr和tibble包中有效,主要关注于列list,支持整洁格式;数据进行懒加载
三种数据结构出现顺序依次从早到晚。
本文将重点介绍最...
列表是 R 语言的对象集合,可以用来保存不同类型的数据,可以是数字、字符串、向量、另一个列表等,当然还可以包含矩阵和函数,通常用list()函数创建列表。列表list最大优点:容纳多种类型的数据,可多层嵌套。
small, in-memory data ( &amp;amp;amp;amp;lt;2Gb):   tidyverse
larger data (10-100 Gb):   data.table
Parallel computing :   need a...
在这个示例中,我们首先使用`tibble()`函数创建了一个tibble数据。然后,我们使用`as.data.frame()`函数将tibble数据转换成数据集格式,并将结果存储在`df_new`变量中。最后,我们使用`print()`函数输出数据集。
需要注意的是,tibble和数据集在R中本质上是相同的类型,只是在显示和一些操作上有所不同。因此,如果您只是需要将tibble数据用于某些操作,而不是输出到其他程序或者文件中,那么通常不需要进行转换。