如何从数据帧中隔离每天的情节?

时间:2013-12-21 21:48:08

标签: r loops plot dataframe

我有以下data.frame包含很多行:

> head(data09)
     No       Date         Time Close   Volume Weekday            DateTime
61 3421 03.12.2012 09:00:00.000 7.430 39000000  Montag 2012-03-12 09:00:00
62 3422 03.12.2012 09:01:00.000 7.429 41000000  Montag 2012-03-12 09:01:00
63 3423 03.12.2012 09:02:00.000 7.428 42000000  Montag 2012-03-12 09:02:00
64 3424 03.12.2012 09:03:00.000 7.430 35000000  Montag 2012-03-12 09:03:00
65 3425 03.12.2012 09:04:00.000 7.430 30000000  Montag 2012-03-12 09:04:00
66 3426 03.12.2012 09:05:00.000 7.432 36000000  Montag 2012-03-12 09:05:00
> 

它基本上显示了长时间的刻度分数据。如果我想要第一天的情节我可以得到它:

plot(data09[1:453,7],data09[1:453,4],type="l",xlab="time",ylab="value")

这给出了以下图:

tete

所以这是在2012年12月3日星期一。现在我希望每天都有一个情节并将其保存到我的磁盘上。我怎么能得到这个?我不知道如何告诉R每天都这样做,所以它必须在同一天的Date列中搜索。数据范围是从2012年12月3日到2013年12月13日,我想将每天的情节保存到我的磁盘上。还有一件事:如果文件名中有标记,显示日期,那就太好了。所以例如03122012.png和04122012.png等。

我的数据是here

2 个答案:

答案 0 :(得分:2)

OP要求每天保存到单独的png文件中的情节:

plot.day = function(df) {
  filename = paste0(df$DateTime[1]$mon+1, df$DateTime[1]$mday, df$DateTime[1]$year+1900, ".png")
  png(filename)
  plot(df$DateTime, df$Close, type="l", xlab="time", ylab="value")
  dev.off()
}

by(data09, data09$Date, plot.day)

答案 1 :(得分:1)

例如,您可以使用by按日期分割:

by(data09,data09$Date,function(dat)
    plot(dat[,7],dat[,4],type="l",xlab="time",
         ylab="value"))