zshでdplyr-cliを使う
この記事は何
ことをした備忘録です。
ことの発端
twitterで流れてきたこれが気になったので使ってみました。
terminal上でさくっとdplyrを使えるようにしたよ、ということらしいので使ってみます。
以下試した内容
github:https://github.com/coolbutuseless/dplyr-cli
読んでみると
bashでしかテストしてないということで、zsh環境で動くか試してみました。
githubにも記載されている内容と同様の以下手順です。
あらかじめRで下記パッケージをインストール
install.packages('readr') # read in CSV data install.packages('dplyr') # data manipulation install.packages('docopt') # CLI description language
自身のPCのdplyrのパッケージフォルダにクローン。
パッケージのフォルダが作られる場所はRのコンソールから下記のように確認できます。
> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/3.6/Resources/library"
あとはdplyrのフォルダに移動したら
git clone https://github.com/coolbutuseless/dplyr-cli
実際に使う際は、dplyr-cli/dplyrを作業フォルダにコピーします。
cp dplyr-cli/dplyr ./somewhere/in/your/search/path
サンプル用にmtcarsのデータセットを作業フォルダに書き出しておきます。
write.csv(mtcars, "mtcars.csv", row.names = FALSE)
次のようにzshでも無事実行できました。
cat mtcars.csv | ./dplyr filter -c "mpg==21"
> "mpg","cyl","disp","hp","drat","wt","qsec","vs","am","gear","carb"
> 21,6,160,110,3.9,2.62,16.46,0,1,4,4
> 21,6,160,110,3.9,2.875,17.02,0,1,4,4
aliasの設定
よく使うやつは下記のようにaliasを貼っておくと便利。
alias mutate="dplyr mutate" alias filter="dplyr filter" alias select="dplyr select" alias summarise="dplyr summarise" alias group_by="dplyr group_by" alias ungroup="dplyr ungroup" alias count="dplyr count" alias arrange="dplyr arrange" alias kable="dplyr kable"
もう少しdplyrっぽく
summariseやjoinも使えるようになっています。
cat mtcars.csv | group_by cyl | summarise "mpg = mean(mpg)" | kable
> | cyl| mpg|
> |---:|--------:|
> | 4| 26.66364|
> | 6| 19.74286|
> | 8| 15.10000|
サンプルのためあらかじめ次のようなcsvを作っておきます。
# cyl,description
# 4,four
# 6,six
joinの実行
cat mtcars.csv | ./dplyr inner_join cyl.csv | filter "wt < 3" | select -c mpg, wt, disp, cyl, description | kable
>| mpg| wt| disp| cyl|description |
>|----:|-----:|-----:|---:|:-----------|
>| 21.0| 2.620| 160.0| 6|six |
>| 21.0| 2.875| 160.0| 6|six |
>| 22.8| 2.320| 108.0| 4|four |
>| 32.4| 2.200| 78.7| 4|four |
>| 30.4| 1.615| 75.7| 4|four |
>| 33.9| 1.835| 71.1| 4|four |
>| 21.5| 2.465| 120.1| 4|four |
>| 27.3| 1.935| 79.0| 4|four |
>| 26.0| 2.140| 120.3| 4|four |
>| 30.4| 1.513| 95.1| 4|four |
>| 19.7| 2.770| 145.0| 6|six |
>| 21.4| 2.780| 121.0| 4|four |
以上です。
今回は、zshでもdplyr-cliが問題なく実行できることを検証できました。
Rを開くほどじゃないけど、dplyr-likeにデータを確認したい、みたいな時に便利そうですね。