さて、オペレーターは、次のルールを定義するパッケージ%>%
から借用されます。magrittr
- デフォルトでは、左側 (LHS) は、右側 (RHS) に現れる関数の最初の引数としてパイプされます。
- 最初以外の位置で LHS が必要な場合は、ドット「.」をプレースホルダーとして使用できます。
この例では、データ フレーム全体がまだ最初のパラメーターとして渡されていることがわかります。
f<-function(...) str(list(...))
dat %>% f(.$b)
# $ :'data.frame': 5 obs. of 2 variables:
# ..$ a: int [1:5] 1 2 3 4 5
# ..$ b: logi [1:5] TRUE TRUE TRUE TRUE TRUE
# $ : logi [1:5] TRUE TRUE TRUE TRUE TRUE
したがって、data.frame と vector の両方を取得しています (関数は 2 つのパラメーターを受け取ります)。これは.
、最初のパラメーター以外の位置に移動していないため、オブジェクトを最初のパラメーターとして渡すように動作を変更していないためだと思います。
このmagrittr
ような場合に使用する別の演算子がパッケージに含まれている場合があります。使用できます%$%
。
library(magrittr)
dat %$% all(b)
# [1] TRUE