思っちゃったんだからしょうがない

統計学を学ぶ傍でひっそりとやっていきます。 #statistics #R

zshでdplyr-cliを使う

この記事は何

ことをした備忘録です。

 

ことの発端

twitterで流れてきたこれが気になったので使ってみました。

f:id:forest-of-sheep-and-steel:20200423004739p:plain

terminal上でさくっとdplyrを使えるようにしたよ、ということらしいので使ってみます。

 

以下試した内容

githubhttps://github.com/coolbutuseless/dplyr-cli

読んでみると

Only tested under ‘bash’ on OSX. YMMV.

 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にデータを確認したい、みたいな時に便利そうですね。