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)。
!!
入力を引用符から外すために使用できます。
foo <- c(1:3)
purrr::map(foo, ~ rlang::quo(!!.x + 2))
#> [[1]]
#> <quosure>
#> expr: ^1L + 2
#> env: 0000000015213C98
#>
#> [[2]]
#> <quosure>
#> expr: ^2L + 2
#> env: 0000000015217758
#>
#> [[3]]
#> <quosure>
#> expr: ^3L + 2
#> env: 00000000157B9FD0
ここでは、評価されmap()
ていない quosure を返すために、無名関数 in の式の短縮形も使用していることに注意してください。map()
Quosures 自体は(を使用してpurrr::as_mapper()
)関数に強制することができますmap(foo, ~ . + 2)
。
reprex パッケージ(v0.2.0.9000)によって 2018-08-06 に作成されました。