При использовании канала %>%
первый аргумент выражения с правой стороны является результатом левого выражения.Это можно обойти, используя .
, чтобы указать, куда вместо этого должно идти выражение LHS, если оно не должно быть первым выражением.Например:
a<-1
a %>% paste("3")
[1] "1 3"
a %>% paste("3",.)
[1] "3 1"
Это относится к некоторым функциям, где первый аргумент не является данными (например, base :: Reduce), или если вы хотите использовать результат LHS где-то еще ввыражение, как в примере выше.
Так что, если LHS должен быть первым аргументом в выражении RHS, нет необходимости в .
.
BTW - .
также можетбудет использоваться, если по какой-то причине вы хотите использовать LHS более одного раза в выражении RHS:
a %>% paste(.,"3",.)
[1] "1 3 1"
или чуть более реалистичный пример:
a %>% ifelse(.==1,3,.)
[1] 3
a %>% ifelse(.!=1,3,.)
[1] 1
(и, каквы можете видеть, вы также можете использовать .
для создания логических условий).