スタートページ> 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 |