スタートページJavaScript他言語R言語

パイプライン演算子 %>% .


パイプ演算子は、「〇〇して、〜〜して、××する」のような一連の流れを簡素に記述できる演算子です。
  %>% 演算子:左辺の結果を右辺の第1引数に渡します。
  , 演算子: 左辺の結果を右辺の第1引数以外の因数に渡します。

%>%演算子の記述例

次のデータフレーム
    c1  c2
       11  21
       12  22
       13  23
 を定義(○○)して、
c1 >= 12 の列を選択(〜〜)して、
各列の合計を求める(××)例を掲げます。
%>% なしの記述



# ======= 処理
df1 <-data.frame(
       c1 = c(11, 12, 13),
       c2 = c(21, 22, 23))
df2 <- filter(df1, c1 >= 12)
df3 <- sapply(df2, sum)
# ======= 結果の出力
df3["c1"]              # 25 (=12+13)
df3["c2"]              # 45 (=22+23)
df3["c1"] + bf["c2"]   # 70
%>% を用いた記述
# === 環境設定
library(magrittr) # この機能は標準機能ではないので
library(dplyr)    # その機能をもつライブラリを呼び出す
# ======= 処理
df1 <- data.frame(
       c1 = c(11, 12, 13),
       c2 = c(21, 22, 23))  %>% # %>% はこの位置に記述する
    filter(c1 >= 12)   %>%      # 第1引数(df1)が省略される
    sapply(sum)            # 第1引数(df1)が省略される
# ======= 結果の出力
df1["c1"]              # 25 (=12+13)
df1["c2"]              # 45 (=22+23)
df1["c1"] + df1["c2"]  # 70

. ドット演算子の記述例

左側の結果が右側の第2引数以降の . で指定した引数になります。

%>% なしの記述



# ======= 処理
df1 <- data.frame(
       c1 = c(11, 12, 13),
       c2 = c(21, 22, 23))
df2 <- data.frame(
       c3 = c(31, 32, 33))
df3 <- rbind(df1, df2)
# ======= 結果の確認
df3              # c1  c2  c3
                 # 11  21  31
                 # 12  22  32
                 # 13  23  33 
df3$c3[2]        # 32
%>% . を用いた記述
# === 環境設定
library(magrittr)
library(dplyr)
# ======= 処理
df1 <- data.frame(
       c1 = c(11, 12, 13),
       c2 = c(21, 22, 23)) 
df2 <- data.frame(
       c3 = c(31, 32, 33)) %>%
    cbind(df1, .)  # . の位置=第2引数
# ======= 結果の確認
df2              # c1  c2  c3
                 # 11  21  31
                 # 12  22  32
                 # 13  23  33 
df2$c3[2]        # 32