こんにちは,shun(@datasciencemore)です!
前回はパイプ処理をやりましたね.
これがわからないと次に進めないので,まだの方は復習をお願いします.
さぁ,今回からいよいよtidyverseのコアパッケージの紹介ができます.
ここまで長かったですね,初回から見てくださっている方々,本当にありがとうございます♪
今回はtidyverseのコアパッケージの第1弾,{tibble}についてやっていきます.
1.tibbleってなに
tibbleってのはね,普通のデータフレームの進化版だと思ってくれればOKだよ!!
tidyverseは,データフレームではなくてtibbleを使用すること前提だから,基本はtibbleを使っていこう!!
baseRでは,データフレームとしてdata.frameクラスがありましたが,data.frameは,若干癖があり扱いづらいです.
そこで,data.frameを使いやすくしたものがtibbleです.
data.frameを使うメリットは皆無なので,今後はすべてtibbleを使用していきます.
今後はtibbleのことをデータフレームと呼んでいきます.
Pythonユーザもpandasでデータフレームといいますし,データフレームって呼んだほうがイメージしやすいと思うので笑
data.frameは使うメリットないので,僕がデータフレームって言ったらtibbleのことだと思ってくださいね!
なお,ややこしい話なのですが前回,tidyverseのコアパッケージの1つが{tibble}というパッケージだとお話ししました.
しかし,普通にtibbleといったら,パッケージのことではなくて,データフレームの進化版であるtibbleのことを表しますので,注意してくださいね.
パッケージを示したいときは{tibble}というように,{}をつけることとしますね!
2.tibbleの作り方
2.1.as_tibble
as_tibbleを使うとbaseRのdata.frameからtibbleに変換することができます.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
iris %>% as_tibble() # A tibble: 150 x 5 Sepal.Length Sepal.Width Petal.Length Petal.Width Species <dbl> <dbl> <dbl> <dbl> <fct> 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3 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 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 7 4.6 3.4 1.4 0.3 setosa 8 5 3.4 1.5 0.2 setosa 9 4.4 2.9 1.4 0.2 setosa 10 4.9 3.1 1.5 0.1 setosa # … with 140 more rows |
2.2.tibble
tibble関数を使用して手動でtibbleを作成できます.
上述のとおり,tibbleってのは関数にもあるんですね...笑
ですからtibbleは以下のとおり全部で3種類の意味があります.
①データフレームの進化版
②パッケージ
③関数
僕のブログでは,特に断りがない限り,tibbleって言ったら①データフレームの進化版を表しますからね~
ただ,tibbleというとめっちゃ紛らわしいので,以前にもお伝えしたとおりなるべくtibbleとは言わずデータフレームと言うことにします.
1 2 3 4 5 6 7 8 9 10 11 |
tibble( No. = 1:3, language = c("R", "Python", "Julia") ) # A tibble: 3 x 2 No. language <int> <chr> 1 1 R 2 2 Python 3 3 Julia |
2.3.tribble
tribbleを使用して,Markdownチックな表記でtibbleが作成できます.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
tribble( ~No., ~language, #-----|---|---- 1, "R", 2, "Python", 3, "Julia" ) # A tibble: 3 x 2 No. language <int> <chr> 1 1 R 2 2 Python 3 3 Julia |
3.tibbleの便利機能
tibbleには,すごい便利機能があります.
それは,
どんなオブジェクトでもtibbleの中に格納できる!!
という機能です.
要するにtibbleの中に普通の値(数値や文字列)だけではなく,データフレーム,関数,グラフなども格納できるのです!!
へー(浅い反応)
でもそれができると何がうれしいの??
実は,この特徴と{dplyr}のrowwiseという関数を組み合わせるといろいろな処理がとても簡潔に書けるんだ!!
{dplyr}のrowwiseという関数については今後詳細に説明するので,今はこの便利機能についてわからなくて結構です.
なんとなくtibbleにはそういう便利機能があるんだなぁくらいなことをおぼろげに覚えてくださいな.
⇒{dplyr}のrowwiseと便利機能について書きました!
まとめ
今回はtibbleについてやってきました.
tibbleは,baseRのdata.frameの進化系です.
tidyverseはtibble前提で作成されているので,今後はdata.frameではなく,tibbleを使用していきます.
そして僕のブログ内では,tibbleのことは基本的にデータフレームって呼びますね.
次回は{dplyr}パッケージについてやっていきます.
{dplyr}は,今回学んだtibbleの加工に特化したパッケージです.
tidyverseのコアパッケージの中でも一番使用頻度が高く,最重要パッケージとなっておりますので,ぼくも丁寧に説明していこうと思います!
それじゃ,お疲れさまでした!!