I have two data frames. One (arr) has all arrivals to an airport for a year, and the other (gw) has the dates and quarter hour of the day when the weather is good. arr has a Date and quarter hour column.
>names(arr) [1] "Date" "weekday" "hour" "month" "minute" [6] "quarter" "ICAO" "Flight" "AircraftType" "Tail" [11] "Arrived" "STA" "Runway" "FromTo" "Delay" [16] "Operator" "gw" I added the gw column to arr and initialized it to all FALSE >names(gw) [1] "Date" "minute" "hour" "quarter" [5] "Efficiency.Val" "Weekly.Avg" "Arrival.Val" "Weekly.Avg.1" [9] "Departure.Val" "Weekly.Avg.2" "Num.of.Hold" "Runway" [13] "Weather" First point of confusion: >gw[1,1] [1] 1/1/09 353 Levels: 1/1/09 1/1/10 1/10/09 1/10/10 1/11/09 1/11/10 1/12/09 ... 9/9/09 Why do I get 353 levels? I am trying to identify the quarter hours with good weather in the arr data frame. What I want to do is to go through the rows in gw, and to set arr$gw to TRUE if arr$Date and arr$quarter match those in the gw row. So I tried gooddates = function(all, good) { la = length(all) # All the flights lw = length(good) # The good 15-minute periods for(j in 1:lw) { d=good$Date[j] q=good$quarter[j] all[all$DateTime==d && all$quarter==q,17]=TRUE } } but when I run this, I get "Error in Ops.factor(all$DateTime, d) : level sets of factors are different" I know the level sets are different, that is what I am trying to find. But I think I am comparing single elements from the data frames. So what am I doing wrong? And there ought to be a better way to do this. Thanks in advance, Jim Rome ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.