使用tibble实现简单数据框
tibble是一种简单数据框,它对data.frame的功能进行了一些修改,更易于使用。本文将介绍tidyverse的核心R包之一——tibble包
创建tibble
- 使用
as_tibble()
函数直接将数据转换成tibble形式。 - 通过
tibble()
函数使用一个向量来创建新 tibble。tibble() 会自动重复长度为 1 的输入,并可以使用刚刚创建的新变量。
tibble( x = 1:5, y = 1, z = x ^ 2 + y ) #> # A tibble: 5 × 3 #> x y z #> <int> <dbl> <dbl> #> 1 1 1 2 #> 2 2 1 5 #> 3 3 1 10 #> 4 4 1 17 #> 5 5 1 26
可以在 tibble 中使用在 R 中不符合语法的名称作为列名称。例如,列名称可以不以字母开头,也可以包含特殊字符(如空格)。要想引用这样的变量,需要使用反引号将它们括起来。
tb <- tibble( `:)` = "smile", ` ` = "space", `2000` = "number" ) tb #> # A tibble: 1 × 3 #> `:)` ` ` `2000` #> <chr> <chr> <chr> #> 1 smile space number
- 使用
tribble()
函数:tribble() 是定制化的,可以对数据按行进行编码:列标题由公式(以 ~ 开头)定义,数据条目以逗号分隔,这样就可以用易读的方式对少量数据进行布局。
tribble( ~x, ~y, ~z, "a", 2, 3.6, "b", 1, 8.5 ) #> # A tibble: 2 × 3 #> x y z #> <chr> <dbl> <dbl> #> 1 a 2 3.6 #> 2 b 1 8.5
对比tibble与data.frame
使用方法 | tibble | data.frame |
打印 | tibble只显示前 10 行结果,并且列也是适合屏幕的,还会打印出列的类型 ,适合大数据集。 | 将数据全部输出,适合小数据集。 |
取子集 | 提取方式相同,但tibble 更严格:它不能进行部分匹配,如果想要访问的列不存在,它会生成一条警告信息。 | [[ 可以按名称或位置提取变量;$ 只能按名称提取变量。 |