Мне любопытно, почему семейство функций purrr::map_*
, несмотря на то, что является частью tidyverse
, не поддерживает квазиквотатуру, заключая в кавычки его dots
до оценки сопоставленной функции?
library(tidyverse)
library(rlang)
set.seed(1)
dots <- quos(digits = 2L)
# this obviously won't work
purrr::map_chr(rnorm(5L),
~ format(.x, !!!dots))
#> Error in !dots: invalid argument type
# I'm confused why this does not work
purrr::map_chr(rnorm(5L),
~ format(.x, ...),
!!!dots)
#> Error in !dots: invalid argument type
# Finally, this works
eval_tidy(expr(
purrr::map_chr(rnorm(5L),
~ format(.x, ...),
!!!dots)
))
#> [1] "1.5" "0.39" "-0.62" "-2.2" "1.1"
Создано в 2019-01-31 пакетом Представ (v0.2.0).