この記事は tidyポエム Advent Calendar 2017 - Adventar 11日目 の記事です。
#はじめに
月がtidyですね。とか,完璧なdata.frameなどといったものは存在しない。完璧な絶望が存在しないようにね。とか,ウィットに富んだ記事を楽しく読ませていただいておりました。
そんな折,何でもいいから書いてみたらとお声かけいただき,思いつくままにタイトルを登録したのですが,今見返すととても偉そうなタイトルで,反省しています。だって吾輩tidyじゃないもの...
#私のRの歴史は...
私のRの歴史はreshape2
の歴史にあらず、plyr
の歴史にあらず、plot()
の歴史にあらず、単にtidyverse
の歴史であると申したいくらいだ。だからtidyverse
をロードしていないコードを見ると自分で書いた感じがしない――
というポエムを思いついただけなのでもう書くことが無くなってしまいました。
一応補足説明をすると...Rを本格的に使い始めたきっかけは,ggplot2
,dplyr
,tidyr
と出会ったことでした。実はreshape2
もplyr
も経ていません。
今や,新規にスクリプトを立ち上げたら,さながら「とりあえずビールで」のようなノリで
library(tidyverse)
ですよ(お酒飲まないですけど)。好きとか嫌いとかはいい,tidyverse
をロードするんだ。
#これからの日々は...
そんなわけで日々tidyverse
のお世話になっているのですが,未だに慣れないところがあって,修業が足りないなあと痛感しているところです。一番躓きやすいのがdplyr::recode()
で,いつもdplyr 0.5.0を使ってみるを参照させていただいています。以下のコードは,上記サイトから転記したものです。
x <- c("a", "b", "a", "b", "a", "c")
recode(x, a = "あ", .default = "うん")
#> [1] "あ" "うん" "あ" "うん" "あ" "うん"
例えば名前の似ているdplyr::rename()
だと,new = oldの順に書きますよね。
iris2 <- iris %>% dplyr::rename(SL = Sepal.Length)
dplyr::mutate()
等も同様に,new = oldの順です。
iris2 <- iris %>% dplyr::mutate(Sepal = (Sepal.Length + Sepal.Width) / 2)
対してdplyr::recode()
は上記の通り,old = newの順。いつも,「どっちだっけ...」と混乱してしまいます。精進します。
オチは特にないです。