В вашей попытке использовать purrr
выполнение foo %>%
не поможет вам, потому что вам не нужно foo
, чтобы быть первым аргументом map_dfr
.Вместо этого вы можете просто сделать:
map_dfr(c("a", "b", "c"), ~ mutate(foo, key = .x))
Если вы хотите продолжать использовать канал, но прекратить передачу foo
в качестве первого аргумента, вы можете окружить map_dfr
с помощью {}
, который подавляетавтоматическая передача аргументов:
foo %>%
{ map_dfr(c("a", "b", "c"), function(x) { mutate(., key = x)}) }
(могут быть более элегантные способы сделать это, используя разные magrittr
трубы, я в основном придерживаюсь %>%
)