R рассматривает значение переменной как параметр - PullRequest
0 голосов
/ 05 мая 2020

У меня есть следующая функция `

  func <- function(data, variable){
  ggplot(data= data, aes(x = as.factor(variable) )) +
    geom_bar()
  }

data <- mtcars
func(data, "mpg")

Я не знаю, как заставить мою функцию понимать, что она должна принимать значение variable в качестве параметра в ggplot.

есть идея?

Ответы [ 2 ]

2 голосов
/ 05 мая 2020

Есть два способа:

library(ggplot2)
library(rlang)

1) Передать переменную в кавычках:

func <- function(data, variable){
  ggplot(data= data, aes(x = factor(!!sym(variable)))) +  geom_bar()
}

func(mtcars, 'mpg')

2) Передать переменную без кавычек

func <- function(data, variable){
  ggplot(data= data, aes(x = factor({{variable}}))) +  geom_bar()
}

func(mtcars, mpg)

enter image description here

0 голосов
/ 06 мая 2020

Если мы хотим передать в кавычки или без кавычек, мы можем использовать ensym

library(ggplot2)
func <- function(data, variable){
   ggplot(data= data, aes(x = factor(!!ensym(variable)))) + 
          geom_bar()
 }

func(mtcars, 'mpg')
func(mtcars, mpg)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...