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