tibble 是一種簡(jiǎn)單數(shù)據(jù)框,它對(duì)傳統(tǒng)數(shù)據(jù)框的功能進(jìn)
行了一些修改,以便更易于使用。 R 是一門古老的語言,其中有些功能在 10 年或 20 年前
是適用的,但現(xiàn)在已經(jīng)過時(shí)。在不破壞現(xiàn)有代碼的前提下,很難修改 R 的基礎(chǔ)功能,因此
多數(shù)革新都是以擴(kuò)展包的方式出現(xiàn)的。
tidyverse 的核心 R 包之一——tibble 包。
library(tidyverse)
tibble 是 tidyverse 的標(biāo)準(zhǔn)功能之一??梢允?/p>
用 as_tibble() 函數(shù)來完成轉(zhuǎn)換:
as_tibble(iris)
#> # A tibble: 150 × 5
#> Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> <dbl> <dbl> <dbl> <dbl> <fctr>
#> 1 5.1 3.5 1.4 0.2 setosa
#> 2 4.9 3.0 1.4 0.2 setosa
#> 3 4.7 3.2 1.3 0.2 setosa
#> 4 4.6 3.1 1.5 0.2 setosa
#> 5 5.0 3.6 1.4 0.2 setosa
#> 6 5.4 3.9 1.7 0.4 setosa
#> # ... with 144 more rows
可以通過 tibble() 函數(shù)使用一個(gè)向量來創(chuàng)建新 tibble。 tibble() 會(huì)自動(dòng)重復(fù)長(zhǎng)度為 1 的輸
入,并可以使用剛剛創(chuàng)建的新變量,如下所示:
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
如果你已經(jīng)非常熟悉 data.frame() 函數(shù),那么請(qǐng)注意 tibble() 函數(shù)的功能要少得多:它不
能改變輸入的類型(例如,不能將字符串轉(zhuǎn)換為因子)、變量的名稱,也不能創(chuàng)建行名稱。
可以在 tibble 中使用在 R 中無效的變量名稱(即不符合語法的名稱)作為列名稱。例如,
列名稱可以不以字母開頭,也可以包含特殊字符(如空格)。要想引用這樣的變量,需要
使用反引號(hào) ` 將它們括起來:
tb <- tibble(
`:)` = "smile",
` ` = "space",
`2000` = "number"
)
tb
#> # A tibble: 1 × 3
#> `:)` ` ` `2000`
#> <chr> <chr> <chr>
#> 1 smile space number
如果要在 ggplot2 和 dplyr 等其他 R 包中使用這些變量,也需要使用反引號(hào)。
創(chuàng)建 tibble 的另一種方法是使用 tribble() 函數(shù), tribble 是 transposed tibble(轉(zhuǎn)置 tibble)
的縮寫。 tribble() 是定制化的,可以對(duì)數(shù)據(jù)按行進(jìn)行編碼:列標(biāo)題由公式(以 ~ 開頭)
定義,數(shù)據(jù)條目以逗號(hào)分隔,這樣就可以用易讀的方式對(duì)少量數(shù)據(jù)進(jìn)行布局:
tribble(
~x, ~y, ~z,
#--|--|----
"a", 2, 3.6,
"b", 1, 8.5








暫無數(shù)據(jù)