gpt4 book ai didi

r - 使用 purrr 创建 quosures 列表

转载 作者:行者123 更新时间:2023-12-04 09:42:58 26 4
gpt4 key购买 nike

是否可以使用 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)。

最佳答案

您可以使用 !!将输入取消引用为 quosure:

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。 Quosures 本身可以通过 map() 强制转换为函数(使用 purrr::as_mapper() ),所以您首先得到评估答案的原因是因为您实际上是在写 map(foo, ~ . + 2) .

创建于 2018-08-06 由 reprex package (v0.2.0.9000)。

关于r - 使用 purrr 创建 quosures 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51707346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com