R 合并两个数据帧,但仅合并匹配的条目

R 合并两个数据帧,但仅合并匹配的条目,r,dataframe,merge,R,Dataframe,Merge,我在一个数据帧(y)中有位置数据,在另一个数据帧(天气)中有天气数据 我想将天气数据与y数据框合并,但只针对y中有相应行的时间和日期 我尝试过合并和rbind,我要么得到一个空的数据帧,要么得到一个有数百万个条目的数据帧,而实际上应该有7000个条目 names(y) [1] "ID" "Year" "Month" "Day" "Time" "Source" [7] "Source.Lat" "Source.Lon" "

我在一个数据帧(y)中有位置数据,在另一个数据帧(天气)中有天气数据

我想将天气数据与y数据框合并,但只针对y中有相应行的时间和日期

我尝试过合并和rbind,我要么得到一个空的数据帧,要么得到一个有数百万个条目的数据帧,而实际上应该有7000个条目

names(y)
 [1] "ID"         "Year"       "Month"      "Day"        "Time"       "Source"    
 [7] "Source.Lat" "Source.Lon" "Target"     "Target.Lat" "Target.Lon"

names(weather)
 [1] "Target"     "Year"       "Month"      "Day"        "Time"          
 [6] "Temp"       "Dew_Point_Temp" "Humidity"   "Wind_Direction" "Wind_Speed"    
[11] "Pressure"   "Humidex" 

all.data <- merge(y, weather, by = c("Target","Year","Month","Day","Time"))
样本数据(天气)


如果
y
不包含唯一的信息,您可以使用:

all.data <- merge(unique(y[("Target","Year","Month","Day","Time")]), weather)

然后使用
merge

描述一个内部联接,这就是您编写的
merge
行所做的,因此没有问题。如果它不起作用,您的数据会出现一些问题,除非您共享数据(或复制该问题的示例数据),否则无法识别这些问题。看起来,
Month
y
中的类型与
weather
@GKi中的类型不同。有没有简单的方法来纠正这个问题?我是个r宝宝
y$Month
    Target      Year Month Day Time    Temp DP  Hum WD  WS  Pressure
1   Kejimkujik  2019    6   1   0:00    6.5 6.1 97  32  3   99.51   
2   Kejimkujik  2019    6   1   1:00    5.9 5.6 98  30  2   99.50   
3   Kejimkujik  2019    6   1   2:00    4.9 4.7 98  31  3   99.52   
4   Kejimkujik  2019    6   1   3:00    4.4 4.3 99  32  3   99.52   
5   Kejimkujik  2019    6   1   4:00    4.1 4.0 99  24  3   99.57   
all.data <- merge(unique(y[("Target","Year","Month","Day","Time")]), weather)
y$Month <- as.numeric(y$Month)