gpt4 book ai didi

r - ggplot facet wrap 变量作为函数中的参数

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

我正在尝试编写一个函数,其中一个参数是要进行分面包装的变量。

最小可重现示例:

library(tidyverse)
library(ggplot2)

wobble<- matrix(1:9, 3) %>% as_tibble()


wibble_fun <- function(df, var) {
df %>%
ggplot(aes(var)) +
geom_bar() +
facet_wrap(~var)
}


wibble_fun(wobble, "V1")

由此产生的错误:
Error: At least one layer must contain all faceting variables: `var`.
* Plot is missing `var`
* Layer 1 is missing `

好像 varfacet_wrap(~var)被解释为字符串“var”而不是被“V1”替换,这是我调用函数时的第二个参数。

有没有办法使这项工作?

最佳答案

这是使用 {{...}} 的解决方案围绕函数内的变量而不是使用 sym并取消报价:

library(tidyverse)
library(ggplot2)

wobble<- matrix(1:9, 3) %>% as_tibble()


wibble_fun <- function(df, var) {
df %>%
ggplot(aes({{var}})) +
geom_bar() +
facet_wrap(vars({{var}}))
}


wibble_fun(wobble, V1)

关于r - ggplot facet wrap 变量作为函数中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55290911/

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