使用map()创建绘图列表



我有一个函数,它获取数据集,过滤给定元素,并创建一个绘图。我想取一个向量,使用map来过滤向量的每个元素,并创建一个图。应用map(vector, function)不起作用——我收到警告

"较长对象长度不是较短对象长度的倍数";。

假设我有这个基于babynames数据集的数据帧names

names <- babynames%>%
pivot_wider(names_from = sex, values_from = n, values_fill=0) %>%
group_by(year,name) %>%
summarize(Female=sum(F), Male=sum(M))  %>%
mutate(percent = Female/(Male+Female)*100)
and a vector made up of `"Ollie"`, `"Verna"`, and `"Ava"`. I want a graph for each of `Ollie`, `Verna`, and `Ava`.
fun_name <- function(name_1) {
names %>%
filter(name==name_1) %>%
ggplot(aes(x=year, y=percent)) +
geom_line()
}
map(vector, fun_name)

我现在特别遇到的问题是,所有的图都合并为一个。

您可以尝试:

library(tidyverse)
library(babynames)
vector <- c("Ollie", "Verna", "Ava")
fun_name <- function(name_1) {
names %>%
filter(name==name_1) %>%
ggplot(aes(x=year, y=percent)) +
geom_line()
}
plot_list <- map(vector, fun_name)
length(plot_list)
#[1] 3

个别地块位于plot_list[[1]]plot_list[[2]]等。

最新更新