【发布时间】:2019-09-09 20:07:27
【问题描述】:
我想使用两个常规字符列为嵌套 tibble 中的一系列图形创建标题和副标题。我可以使用 .x 和 .y 功能在标题中添加一列。例如:
library(tidyverse)
df <- mtcars %>%
filter(carb %in% c(1, 2, 4)) %>%
mutate(carb = as.character(carb), gear = as.character(gear))
df_with_plots <- df %>%
group_by(carb, gear) %>%
nest() %>%
mutate(plot = map(data, function(.x) {
.x %>%
ggplot() +
geom_histogram(aes(mpg))
}))
df_with_plots
carb gear data plot
<chr> <chr> <list> <list>
1 4 4 <tibble [4 × 9]> <gg>
2 1 4 <tibble [4 × 9]> <gg>
3 1 3 <tibble [3 × 9]> <gg>
4 2 3 <tibble [4 × 9]> <gg>
5 4 3 <tibble [5 × 9]> <gg>
6 2 4 <tibble [4 × 9]> <gg>
7 2 5 <tibble [2 × 9]> <gg>
8 4 5 <tibble [1 × 9]> <gg>
figs <- map2(df_with_plots$plot, df_with_plots$gear, ~ .x + labs(title = paste("Number of gears", .y)))
figs[[1]]
这将产生一系列数字,标题中带有“齿轮数”.y 的一系列数字。我怎样才能在标题中同时获得齿轮和碳水化合物(前两列)?
【问题讨论】:
-
您需要在您的 mutate 中使用 map2。并且您的 .x 数据必须是 .x$col ,即在使用 map2 嵌套之后在 mutate 中使用 labs