【发布时间】:2018-08-06 12:11:10
【问题描述】:
是否可以使用 purrr 返回 quosures 列表?
foo <- c(1:3)
purrr::map(foo, rlang::quo(. + 2))
返回评估的quosures(即包含3到5的列表)。
有没有办法返回包含 quo(1 + 2)、quo (2 + 2) 等的列表?
(如果重要或将来访问的包版本:purrr 0.2.5,rlang 0.2.1)。
【问题讨论】:
-
也许
purrr::map(foo, ~substitute(rlang::quo(. + 2)))? -
这似乎返回:> purrr::map(foo, ~substitute(rlang::quo(. + 2))) [[1]] rlang::quo(..1 + 2 ) [[2]] rlang::quo(..1 + 2) [[3]] rlang::quo(..1 + 2)
-
参见adv-r.hadley.nz/quasiquotation.html中的“Map-reduce 生成代码”部分
-
Fab - 谢谢。我认为这是 Advanced R 的新篇章?第 1 版是我的 R 圣经,但我倾向于在其死树版中使用它。
-
刚刚通过那一章进行了侦察 - 非常好。正是我需要的(对于这个和其他几个问题 - 我的项目中正在进行太多的 tidyeval !!!)