logo

Rでパイプオペレーター %>% を使用する方法 📂R

Rでパイプオペレーター %>% を使用する方法

概要

R では、%>%パイプ演算子pipe Operater として知られており、他の演算子と同じように二項演算を行う。名前の通り、パイプ演算子は値がパイプを通過するように、関数を通じてデータ操作をスムーズにする。この例がその有用性をより理解するのに役立つだろう。

20190805\_163044.png

上の例では$1$ から $10$ までの数値の平方根を計算し、その値のログを取ってから、その中央値を求める。この計算は任意で、特にコーディングが難しいわけではないが、このような表現を頻繁に使用している場合、コードの可読性は大幅に悪化する可能性がある。

R はデータハンドリングが非常に便利で、大まかなコードでも意図した結果が得られるため、コーダーはメモリを無駄にしたいと思わない。その結果、無意識に多数の括弧がネストされたコードを書くことになる。しかし、パイプを使用すると、会話のように自然なコーディングが可能になる。

20190805\_162550.png 例えば、ファクターを数値に変換するテクニックを考えると、パイプを使うことで、人間の思考プロセスに近い方法でコードを組むことができる。上のスクリーンショットは非常にシンプルだが、実際のデータ分析で x の扱いが複雑になるほど、パイプの可読性は高まる。

コード

median(log(sqrt(1:10)))
1:10 %>% sqrt %>% log %>% median
 
x <- factor(c("3", "1", "2", "2", "1", "1", "5")); x
y1 <- as.numeric(as.character(x)); y1
y2 <- x %>% as.character%>% as.numeric; y2