【问题标题】:Adding grouped variable name to plot with group_nest and map添加分组变量名称以使用 group_nest 和 map 绘制
【发布时间】:2019-10-14 20:08:42
【问题描述】:

这可能是一个语法问题。这是用一些虚拟数据重新创建的问题。

我正在处理一个更大的数据集,我想执行一个 group_nest,然后创建一些带有组标题的图。一切顺利,直到标题重复。

library(tidyverse)

N <- 30
df <- tibble(type = rep(c("small","medium","high"), each=N/3),
             dummy = rep(c(1,5,10),each=10),
             xvals = rep(1:10,3),
             A = rnorm(N)*dummy,
             B = rnorm(N)*dummy,
             C = rnorm(N)*dummy) %>%
  mutate(type = factor(type, levels=c("small","medium","high"))) %>%
  pivot_longer(cols=-c(type,xvals), names_to="metric", values_to = "value") %>%
  group_by(type) %>%
  group_nest(.key="data") %>%
  mutate(gplot = map(data, ~ggplot(data=.x, aes(x=xvals,y=value))+
                       geom_point() +
                       facet_grid(rows=vars(metric)) +
                       ggtitle(paste0(type) ## THIS IS WHERE THE PROBLEM IS ##
                      )))

#view the plots
df$gplot[[1]] #has title "small"
df$gplot[[2]] #has title "small", should be "medium"
df$gplot[[3]] #has title "small", should be "large"

这是我得到的:

这就是我想要的:

【问题讨论】:

    标签: r ggplot2 dplyr purrr


    【解决方案1】:

    也许改用map2

    df <- tibble(type = rep(c("small","medium","high"), each=N/3),
                             dummy = rep(c(1,5,10),each=10),
                             xvals = rep(1:10,3),
                             A = rnorm(N)*dummy,
                             B = rnorm(N)*dummy,
                             C = rnorm(N)*dummy) %>%
        mutate(type = factor(type, levels=c("small","medium","high"))) %>%
        pivot_longer(cols=-c(type,xvals), names_to="metric", values_to = "value") %>%
        group_by(type) %>%
        group_nest(.key="data") %>%
        mutate(gplot = map2(data,type, ~ggplot(data=.x, aes(x=xvals,y=value))+
                                                geom_point() +
                                                facet_grid(rows=vars(metric)) +
                                                ggtitle(.y ## THIS IS WHERE THE PROBLEM IS ##
                                                )))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-13
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      • 2014-01-02
      相关资源
      最近更新 更多