4

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)。

4

1 に答える 1

7

!!入力を引用符から外すために使用できます。

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 に作成されました。

于 2018-08-06T12:25:54.483 に答える