R logo

便利なパイプ演算子 %>% ……の覚書。

パイプ演算子とは

パイプ演算子は、左辺のオブジェクトを右辺の関数に入れる機能を持つ演算子。

%>%

%>%tidyverseに含まれているパイプ演算子。%>%の左にあるデータを右の関数の第一引数に渡す役割を担う。

|>

|>はR 4.1.0以降で備わっているパイプ演算子。

 



 

今回は、%>%についての覚書。

|>については後日。

事前準備

pipe演算子%>%は、「dplyr」で提供されている演算子なので、事前に「dplyr」をインストールしておく必要がある。

だけど、たいていは「tidyverse」に入っているので、「tidyverse」をインストールする。

library(tidyverse)

%>% の使い方

使用例のデータを作る

適当にデータフレームを作る。

Data <- data.frame(matrix(c(1:8),2))
    print(Data)
X1 X2 X3 X4
1 1 3 5 7
2 2 4 6 8

 

例えば、このデータの2列目と3列目を足した値を5列目に追加する。

今回は「dyplyr」のmutateを使う。

Data <- dplyr::mutate(Data, Sum1=X2+X4)
    print(Data)

X1 X2 X3 X4 Sum1
1 1 3 5 7 10
2 2 4 6 8 12

%>% を使って2つのデータを繋げる

上記2つのデータをパイプ演算子で繋げると、こんな感じ。

Data <- data.frame(matrix(c(1:8),2)) %>%
    dplyr::mutate(Sum1 = X2+X4)
    pring(Data)

X1 X2 X3 X4 Sum1
1 1 3 5 7 10
2 2 4 6 8 12

いくつも繋げられる

パイプ演算子はいくつも繋げられて、毎回第一引数を渡してくれる。

Data <- data.frame(matrix(c(1:8),2)) %>%
    dplyr::mutate(Sum1 = X2+X4) %>%
    mutate(Sum2 = X1+X3) %>%
    mutate(Average = mean(c(X1,X2,X3)))
    Data

X1 X2 X3 X4 Sum1 Sum2 Average
1 1 3 5 7 10 6 3.5
2 2 4 6 8 12 8 3.5

%>% のショートカット

%>% のショートカットは、「Ctrl + Shit + M」

にほんブログ村 子育てブログ ワーキングマザー育児へ