ベクトル(文字列)の頻度を可視化したい with dplyr, ggplot2

ggplot2が苦手な俺がどうやってそれをやったのかという備忘録。

必要なパッケージは以下の3つ。適当にinstall.packagesしておくべし。

library(ggplot2)
library(magrittr)
library(data.table)

サンプルデータは適当に作った文字列ベクトル

x <- sample(letters[1:15], 100, replace=TRUE)

これをggplot2で可視化(棒グラフ)にしたい。したいんだが、ggplot2苦手な俺はがんばった。もちろん

を見てもわかるように、dplyr & chain脳になった俺は%>%を使って処理を結合し、全てを一発で済ませるようにした。
結果として以下のコードが出来上がった。

x %>%
  data.frame %>% 
  setnames("STR") %>%
  ggplot(data=., aes(STR)) +
  geom_bar(aes(fill=STR))

キモはsetnames関数で、これによりデータフレームの列名を変更しつつ、その結果を次の処理へchaninできる。これはdata.tableにある関数。

を見ていて気が付いた。setname関数便利&@gg_hatano氏えらい。

それから列名を変換したdata.frameをggplot2に渡せばOK。その際には「data=.」のようにどこにchainでやってきたデータを突っ込むのかを指定する。
この「.」はmagrittrパッケージ由来っぽい。githubに記載があった

描画結果は以下。

うん、気持ちいい。