使用 R 在 2 个数据集之间仅合并"new"时间序列观测值



使用一个单独的程序,我每5分钟收集一次时间序列观测值,然后每5分钟生成一个CSV文件,其中包含当前月份的所有5分钟观测值。我试图找出,在R程序中,如何结合"只有新的"数据从CSV文件到现有的多年时间序列数据库,已经包含了一些数据从当前月份。我不想覆盖已经存在的数据,我只想将文件中的新时间序列观测值添加到主数据库中。(注意:新数据不一定总是新文件中的最后一行数据。)我需要某种类型的脚本,比较两个文件,然后添加什么是新的。两个文件的头文件是相同的。我已经尝试追加和合并,但无法看到得到正确的工作。我将感谢任何帮助!!!!!

Monthly Data
DF[1:10,1:10]
             Date.Time PD0Binary PAR NitrateUM NitrateMGL Nlight Ndark Temp2m SpC2m Depth2m
1  2013-05-01 11:40:00        NA  NA        NA         NA     NA    NA     NA    NA      NA
2  2013-05-01 11:45:00        NA  NA        NA         NA     NA    NA     NA    NA      NA
3  2013-05-01 11:50:00        NA  NA        NA         NA     NA    NA     NA    NA      NA
4  2013-05-01 11:55:00        NA  NA        NA         NA     NA    NA     NA    NA      NA
5  2013-05-01 12:00:00        NA  NA        NA         NA     NA    NA     NA    NA      NA
6  2013-05-01 12:05:00        NA  NA        NA         NA     NA    NA     NA    NA      NA
7  2013-05-01 12:10:00        NA  NA        NA         NA     NA    NA     NA    NA      NA
8  2013-05-01 12:15:00        NA  NA        NA         NA     NA    NA     NA    NA      NA
9  2013-05-01 12:20:00        NA  NA        NA         NA     NA    NA     NA    NA      NA
10 2013-05-01 12:25:00        NA  NA        NA         NA     NA    NA     NA    NA      NA

根据您提供的信息,我建议以下解决方案:

假设有两个CSV文件。旧的CSV文件(例如包含120个条目)和新的CSV文件(例如包含135个条目),我们只想从中提取15个新条目。

  1. 使用max(...)查找最新的Date.Time。下面是max如何使用Date-time的示例:

    lastEntry <- max(as.POSIXct("2013-05-23 11:20:00"), as.POSIXct("2013-05-23 11:30:00"),
                     as.POSIXct("2013-05-23 11:25:00"))
    lastEntry
    > [1] "2013-05-23 11:30:00 CEST"
    
  2. 从新的CSV文件创建一个数据子集,条件为Date.Time > lastEntry

    newEntries <- subset(newCSVdata, Date.Time > lastEntry)
    
  3. newEntries现在包含15个新条目。将它们添加到您的数据库中。

最新更新