Синтаксис-заполнитель, используемый purrr, также используется в канале magrittr (%>%
). По умолчанию канал передает LHS (слева) в качестве первого аргумента функции в RHS (справа). В этом случае .
не требуется в выражении RHS.
Например:
mtcars %>% str()
работает нормально и эквивалентно:
mtcars %>% str(.)
.
в этом случае совершенно не нужен, потому что LHS (mtcars
) - это первый аргумент, переданный str()
.
Так что это то же самое, что и:
str(mtcars)
Но в любой другой ситуации вам нужно использовать .
, чтобы отметить, где в RHS должна быть передана LHS.
Ваш пример немного сложен, потому что LHS (mtcars
) передается дважды в RHS (функция split()
): сначала
- в качестве первого аргумента (поэтому
.
не требуется) - , затем снова, как часть 2-го аргумента (поэтому вам нужен
.
в этом случае).
mtcars %>% split(f = .$cyl)
можно записать (хотя это и не нужно) как:
mtcars %>% split(x = ., f = .$cyl)
и, таким образом, фактически эквивалентно:
split(x = mtcars, f = mtcars$cyl)