Тидевал в функции с dplyr и ggplot2 - PullRequest
0 голосов
/ 08 мая 2019

Итак, я создаю имя с :=, но я хочу использовать его в ggplot2 как y, что, похоже, не работает.

library(tidyverse)
date_group_plot_line <- function(df, group_col, summarise_col) {
  group_col  <-enquo(group_col)
  summarise_col <- enquo(summarise_col)

  name <- paste0(rlang::quo_name(summarise_col), "_", "mean")

  df %>%
    dplyr::group_by(!!group_col) %>%
    dplyr::summarise( !!name := mean(!!summarise_col)) %>%
    dplyr::filter(!is.na(!!group_col)) %>%
    ggplot2::ggplot(ggplot2::aes(x=!!group_col, y= !!name )) +
    ggplot2::geom_point()
}

date_group_plot_line(diamonds, cut, price)
#> Warning: package 'bindrcpp' was built under R version 3.4.4

Создано в 2019-05-08 пакетом представительство (v0.2.0).

1 Ответ

1 голос
/ 08 мая 2019

С помощью @LionelHenry в разделе комментариев к этому вопросу мой собственный ответ:

library(tidyverse)

date_group_plot_line <- function(df, group_col, summarise_col) {
  group_col  <-enquo(group_col)
  summarise_col <- enquo(summarise_col)

  name <- paste0(rlang::quo_name(summarise_col), "_", "mean")

  df %>%
    dplyr::group_by(!!group_col) %>%
    dplyr::summarise( !!name := mean(!!summarise_col)) %>%
    dplyr::filter(!is.na(!!group_col)) %>%
    ggplot2::ggplot(ggplot2::aes(x=!!group_col, y= !!rlang::sym(name) )) +
    ggplot2::geom_point()
}

date_group_plot_line(diamonds, cut, price)
#> Warning: package 'bindrcpp' was built under R version 3.4.4

Создано в 2019-05-08 пользователем представительный пакет (v0.2.0).

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