[R] merging data frames gives all NAs

James Rome jamesrome at gmail.com
Mon Feb 1 23:16:56 CET 2010


Dear kind R helpers,

I have a vector of runway names in rwy  ("31R", "31L",...  the number is 
user selectable)
arrgnd is a data frame with data for all flights and all runways, with a 
Runway column.
I am trying to subset arrgnd into a dat frame for each selected runway, 
and then combine them back together using the following code:

for (j in 1:nr) {    # nr = number of user-selected runways
     ar4rw = arrgnd[arrgnd$Runway==rwy[j],]
     if (j == 1) {
         arrw = ar4rw
     }
     else {
         arrw = merge(arrw, ar4rw)
     }
}

but, the merge step gives me a data frame with all NAs. In addition, 
ar4rw always gets a row with NAs at the start, which I do not 
understand. There are no rows with all NAs in the arrgnd data frame.
 > ar4rw[1:2,]  # first time through for 31R
         DateTime       Date month hour minute quarter weekday IATA ICAO 
Flight
NA <NA> <NA>    NA   NA     NA      NA      NA <NA> <NA> <NA>
529 1/1/09 21:46 2009-01-01     1   21     46      87       5   TA  TAI 
TAI570
     AircraftType   Tail  Arrived   STA Runway     FromTo Delay
NA <NA> <NA> <NA> <NA> <NA> <NA>    NA
529         A320 N496TA 21:46:58 22:30    31R MSLP /KJFK     0
                        Operator            dq gw
NA <NA> <NA> NA
529 TACA INTERNATIONAL AIRLINES 2009-01-01 87  1

 > ar4rw[1:2,]   # second time through for 31L
         DateTime       Date month hour minute quarter weekday IATA ICAO 
Flight
NA <NA> <NA>    NA   NA     NA      NA      NA <NA> <NA> <NA>
552 1/1/09 23:03 2009-01-01     1   23      3      92       5   AA  AAL  
AAL22
     AircraftType   Tail  Arrived   STA Runway    FromTo Delay          
Operator
NA <NA> <NA> <NA> <NA> <NA> <NA>    NA <NA>
552         B762 N329AA 23:03:35 23:10    31L LAX  /JFK     0 AMERICAN 
AIRLINES
                dq gw
NA <NA> NA

But after the merge, I get all NAs. What am I doing wrong?

Thanks,
Jim Rome

552 2009-01-01 92  1



More information about the R-help mailing list