[R] How to select a row from one dataframe that is "close" to a row in another dataframe

James Rome jamesrome at gmail.com
Sat Mar 20 15:20:03 CET 2010

I have two data frames of flight data,  but they have very different
numbers of rows. They come from different sources, so the data are not

> names(oooi)
 [1] "FltOrigDt"               "MkdCrrCd"              
 [3] "MkdFltNbr"               "DprtTrpnStnCd"         
 [5] "ArrTrpnStnCd"            "ActualOutLocalTimestamp"
 [7] "ActualOffLocal"          "ActualOnLocal"         
 [9] "ActualInLocal"           "ArrivalGate"           
[11] "DepartureGate"           "Flight"                
[13] "OnDate"                  "MinutesIntoDay"        
[15] "OnHour"                  "pt"  

> names(runway)
 [1] "OnDateTime"     "IATA"           "ICAO"           "Flight"       
 [5] "AircraftType"   "Tail"           "Arrived"        "STA"          
 [9] "Runway"         "From.To"        "Delay"          "OnDate"       
[13] "MinutesIntoDay" "pt"   

These sets have several hundred thousand rows.

In both sets, pt is a POSIXct for the arrival time (from different
sources). They are not identical, but surely should be within an hour of
each other (hopefully a lot less), and the Flight fields must be the
same. So
(abs(runway$pt - oooi$pt) < 3600) & (runway$Flight == oooi$Flight)
should pick out the corresponding rows in the two data sets (if there is
a match).

What I need to do is to take the Runway from runway and insert it into
the oooi df for the correct flight.

What is the best way to do this in R?

Jim Rome

More information about the R-help mailing list