【发布时间】:2018-02-28 21:48:57
【问题描述】:
我想创建一个包含绘图的命名列表。我从包含唯一 ID 的向量创建一个列表,用于过滤包含所有信息的主数据框。
然后我有一个函数,我在 lapply 中使用它来循环遍历唯一 ID 列表以过滤主数据框并创建图。然后我想将每个图附加到一个(最初)初始化的列表中,并且我希望列表条目的名称等于在 lapply 中传递的列表值。
我下面的代码创建了绘图,但是附加列表没有传递的列表 id 值的对应名称。
我有错误的方法吗?我见过使用 names(list) 等的问题/答案,但是传递给 lapply 的列表没有命名,我希望传递的列表条目成为新列表的名称。
提前致谢!
library(ggplot2)
library(dplyr)
unique_names = as.list(c("apple", "banana", "carrots"))
listy = list()
dframe = data.frame(x_var = seq(1:9)) %>%
mutate(y_var = x_var^3)
temp = data.frame(id = c("apple", "apple", "apple", "banana", "banana", "banana", "carrots", "carrots", "carrots"))
dframe = bind_cols(dframe,
temp)
fun_plots = function(my_list,
my_df,
my_appending_list) {
a = filter(my_df,
id == my_list)
plt = ggplot() +
geom_line(data = a,
aes(x = x_var,
y = y_var))
my_appending_list$my_list = plt
}
plot_list = lapply(unique_names,
fun_plots,
my_df = dframe,
my_appending_list = listy)
【问题讨论】: