从列表中加载数据框并创建一个图表列表

时间:2016-12-07 09:27:30

标签: r list dataframe ggplot2

我试图通过从我之前创建的列表中迭代选择data.frames来创建一个绘图列表;但是,每当我尝试选择除最后一个之外的那个图表列表中的元素时,我都会收到错误:

数据:4个不同数据框“IT”的列表(参见str的底部)

代码:

for(i in 1:length(IT)){
  myplotlist[[i]]<- ggplot(IT[[i]],aes(IT[[i]][,1],IT[[i]][,2]))+geom_point()
}

问题: 当我选择myplotlist [[1]]时,我会回来:

  

错误:美学必须是长度1或与数据(370)相同:x,y

然而,myplotlist [[4]]给了我正确的情节。

这里有人有想法吗?我相信使用lapply可以很容易地省略for循环。

非常感谢,

str(IT)

    'IT' is a list of 4 

    $ :'data.frame':    370 obs. of  3 variables:
     ..$ AsofDate                      : Date[1:370], format: "2014-04-08" "2014-           04-09" "2014-04-17" "2014-05-07" ...
      ..$ FUT_CLOSE_BASE_Q1: num [1:370] 55.5 55.5 56.9 56 56.6 ...
  ..$ Q                             : chr [1:370] "Q1" "Q1" "Q1" "Q1" ...

 $ :'data.frame':   288 obs. of  3 variables:
  ..$ AsofDate                      : Date[1:288], format: "2014-04-07" "2014-05-19" "2014-07-14" "2014-07-15" ...
  ..$ FUT_CLOSE_BASE_Q2: num [1:288] 47.3 47.6 47.6 47.6 48.3 ...
  ..$ Q                             : chr [1:288] "Q2" "Q2" "Q2" "Q2" ...

 $ :'data.frame':   375 obs. of  3 variables:
  ..$ AsofDate                      : Date[1:375], format: "2014-04-07" "2014-04-08" "2014-04-09" "2014-04-10" ...
 ..$ FUT_CLOSE_BASE_Q3: num [1:375] 53.9 53.1 53.5 53 53.6 ...
  ..$ Q                             : chr [1:375] "Q3" "Q3" "Q3" "Q3" ...

     $ :'data.frame':   467 obs. of  3 variables:
      ..$ AsofDate                      : Date[1:467], format: "2014-04-07"     "2014-04-08" "2014-04-09" "2014-04-10" ...
      ..$ FUT_CLOSE_BASE_Q4: num [1:467] 56.8 56.5 56.5 56.3 57.2 ...
      ..$ Q                             : chr [1:467] "Q4" "Q4" "Q4" "Q4" ...

0 个答案:

没有答案