通过匹配日期合并不同长度的数据帧

Kod*_*oda 2 merge r time-series rbind

我有两个不同长度的数据帧(n=3012 和 3008),我需要根据日期进行合并。我曾尝试使用合并和 rbindfill 函数,但没有成功。两个数据帧之间的公共线程是 date_time 但是两个 df2 都没有与 df1 相同的值。

df1

ID date_time Q_cfs Data_Code
68 2016-11-01 00:00:00   353         P
69 2016-11-01 00:15:00   356         P
70 2016-11-01 00:30:00   357         P
71 2016-11-01 00:45:00   356         P
72 2016-11-01 01:00:00   358         P
73 2016-11-01 01:15:00   355         P
Run Code Online (Sandbox Code Playgroud)

df2

ID  stage           date_time
1  4.82 2016-11-01 00:00:00
2  4.83 2016-11-01 00:15:00
3  4.84 2016-11-01 00:30:00
4  4.85 2016-11-01 00:45:00
5  4.86 2016-11-01 01:00:00
6  4.87 2016-11-01 01:15:00
Run Code Online (Sandbox Code Playgroud)

我尝试使用合并(如下)但它不起作用,因为列长度不同。

DF_New<- merge(df1,df2, by.x = df1$date_time, by.y = df2$date_time)
Run Code Online (Sandbox Code Playgroud)

我也尝试使用 rbind.fill(如下),但它用 .

DF_New <- rbind.fill(df1,df2)
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Joe*_*Joe 10

使用该dplyr包并尝试left_join()。这将返回所有行df1从两个和所有列df1df2df1没有匹配项的任何行都将收到NA.

library(dplyr)
left_join(df1, df2, by = "date_time")
Run Code Online (Sandbox Code Playgroud)

查看您可以使用的其他类型的连接?join