使用R:如何使用非唯一键合并两个数据帧,这些键在大型数据集中一次又一次地重复

时间:2018-12-10 20:40:06

标签: r dataframe join merge

我正在尝试使用R将数据与时滞对齐。 该表如下所示:

   Row        Timestamp         ID1   Var1  Var2  ID2  Var3  Var4
   1      2/27/2018 4:09:30     33    3     4    22    3     4
   2      2/27/2018 4:10:00     34    3     4    23    3     4
   3      2/27/2018 4:10:30     34    3     4    24    3     4
   4      2/27/2018 4:11:00     35    3     4    NA    NA     NA
   5      2/27/2018 4:11:30     36    3     4    25    3     4
   6      2/27/2018 4:12:00     36    3     4    26    3     4
   7      2/27/2018 4:12:30     37    3     4    NA    NA     NA
   8      2/27/2018 4:13:00     38    3     4    NA    NA     NA
   9      2/27/2018 4:13:30     38    3     4    NA    NA     NA
  10      2/27/2018 4:14:00      1    3     4    NA    NA     NA
  11      2/27/2018 4:14:30      1    3     4    NA    NA     NA
  12      2/27/2018 4:15:00      2    3     4    27    3     4
  13      2/27/2018 4:15:30      3    3     4    28    3     4
  14      2/27/2018 4:16:00      3    3     4    NA    NA     NA
  15      2/27/2018 4:16:30      4    3     4    29    3     4
  16      2/27/2018 4:17:00      5    3     4    30    3     4
  17      2/27/2018 4:17:30      5    3     4    31    3     4
  18      2/27/2018 4:18:00      6    3     4    NA    NA     NA
  19      2/27/2018 4:18:30      7    3     4    32    3     4
  20      2/27/2018 4:19:00      8    3     4    33    3     4
  21      2/27/2018 4:19:30      8    3     4    NA    NA     NA
  22      2/27/2018 4:19:00      9    3     4    34    3     4
  23      2/27/2018 4:19:00      10   3     4    35    3     4

期望的表如下:

    Row        Timestamp         ID1   Var1  Var2  ID2  Var3  Var4
    1      2/27/2018 4:09:30     33    3     4      33    3     4
    2      2/27/2018 4:10:00     34    3     4      34    3     4
    3      2/27/2018 4:10:30     34    3     4      NA    NA    NA
    4      2/27/2018 4:11:00     35    3     4      35    3     4

这里是更多信息。数据按时间戳进行组织并存储在一个系统中。因此,ID1,Var1,Var2是产生设备的数据,然后皮带需要花费一些时间才能将该设备运送到检查点。 ID2,Var3和Var4是在检查点生成的数据。基本上,在第1行中,当他们正在生成设备ID1 33时,检查点是检查比ID1 33早一些时间生成的设备ID222。因此,我想对ID1 33中的行1中的数据进行匹配/合并( (使用Var1和Var2)以及ID2 33(使用Var3和Var4)的第20行数据。我正在尝试将产生此设备的正确数据与提供该设备质量数据的检查点数据结合在一起。 我试图将数据分成两个数据帧进行合并,但是我没有找到一个好的方法,因为:1)ID1中存在ID重复,因为人们选择了数据检索的频率(在示例中为30s); 2)ID2中存在NA,因为检查点系统仅在确实对设备进行检查时才产生数据。 3)没有唯一的密钥可以合并,因为ID1和ID2每1-38重复一次。

0 个答案:

没有答案