В продолжение моего предыдущего вопроса - как вы можете ссылаться на вновь созданный столбец позже в анализе? Как вы можете ссылаться на .data[["cyl"]]
и переименовывать заголовок как cyl
?
Туннельные переменные данных через переменную env с оператором "{{"
library(tidyverse)
#> Warning: package 'tidyverse' was built under R version 3.6.2
#> Warning: package 'tidyr' was built under R version 3.6.2
# Variables to pass into function
params <- setdiff(colnames(mtcars) ,"mpg") %>% head(3)
graph_by <- function(data, by, var, prefix = "avg") {
data %>%
group_by({{ by }}) %>%
summarise(mean_value := mean({{ var }}, na.rm = TRUE)) %>%
ggplot(aes(mean_value, {{ by }})) +
geom_line() +
geom_point()
}
graph_by(mtcars, by = cyl, var = mpg)
![](https://i.imgur.com/BdHBBMK.png)
purrr::map(params, ~ graph_by(mtcars, by = .data[[.x]], var = mpg))
#> [[1]]
![](https://i.imgur.com/UPVVj1h.png)
#>
#> [[2]]
![](https://i.imgur.com/LsKy6vC.png)
#>
#> [[3]]
![](https://i.imgur.com/xecY6V1.png)
## Goal would be to refer to the created variable later in the analysis
# graph_by <- function(data, by, var, prefix = "avg") {
# data %>%
# group_by({{ by }}) %>%
# summarise("{prefix}_{{ var }}" := mean({{ var }}, na.rm = TRUE)) %>%
# ggplot(aes(.data[[.x]], {{ by }})) +
# geom_line() +
# geom_point() +
# labs(x = "{{ by }}")
# }
Создано в 2020-02-19 пакетом Представить (v0.3.0)