我一直在看其他类似的文章,但无法弄清楚。我有大量的嵌套,每个嵌套都有大量的列n。重要的是要注意,每个嵌套框架都有相同数量的列,具有相同的名称和相同的顺序。
假设
df1<-data.frame(col1=c(1979:2150),...., coln=c(1:172))
... # many more dataframes with the same format
dfn<-data.frame(col1=c(1979:2150),...., coln(c(1:172))
All_dataframes<-list(df1, df2, df3,...,dfn)
我首先尝试为列表中每个数据框的特定列创建一个图表,这似乎可以使用以下简单代码(我无法使用lapply做到这一点,也很乐意接受建议)
my_plot<-ggplot(bind_rows(All_dataframes, .id = "df"), aes(x=Year, y=col17, colour=df))+
geom_line()
现在我想创建一个循环来遍历列表中包含的每个数组的每个类似列,以将这些变量绘制在同一个图中(与之前的示例相同,但不必指定列,我的数据集太大)。例如,将每个子帧的所有col12绘制在一起,则所有col13、col14.
额外的好处:我还想为每个变量添加一个geom_smooth。我不知道如何添加它。
如果答复中能解释正在做什么,我将不胜感激。我想知道步骤。
谢谢你
1条答案
按热度按时间0wi1tuuw1#
让我们做一个可重复的例子,用2个y列来绘制,用不同的数据来判断它是否有效:
然后,我们可以为这些图创建一个列表,并使用for循环来填充列表,在
aes()
中使用.data[[column_name]]
来指定不断变化的美学。(我相信.data
语法是在ggplot2 3.0版中引入的。可以通过数字或列名来显示单个图: