gpt4 book ai didi

r - 带公式的函数的正确 dplyr 函数式编程语法是什么

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

我正在尝试使用 dplyr 函数式编程指南编写一个函数来动态更改变量名称。它适用于大多数 tidyverse 变量替换,但不适用于要评估的函数使用公式时。

facet_wrap 绘图示例:

library(dplyr)
library(ggplot2)

mtcars %>%
ggplot(aes(hp, mpg)) +
geom_point() +
facet_wrap(~cyl)

f <- function(wrap_col) {
mtcars %>%
ggplot(aes(hp, mpg)) +
geom_point() +
facet_wrap(~ {{ wrap_col }})
}

f(cyl)

# Error in eval_tidy(facet, mask) : object 'cyl' not found

我尝试了上面的直接版本并使用引号 "{{ wrap_col }}" 和方括号。没有一个对我有用

最佳答案

我们可以使用rlang::inject

library(dplyr)
f <- function(wrap_col) {
mtcars %>%
ggplot(aes(hp, mpg)) +
geom_point() +
facet_wrap(rlang::inject(~ {{ wrap_col }}))
}

-测试

p1 <- mtcars %>%
ggplot(aes(hp, mpg)) +
geom_point() +
facet_wrap(~cyl)

p2 <- f(cyl)
all.equal(p1, p2)
#[1] TRUE

关于r - 带公式的函数的正确 dplyr 函数式编程语法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67307626/

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