What I want to do is create a data.frame column from ranges of dates (e.g. annual quarters) as an ordered factor, then use this column to select by ranges of the factor (e.g. all quarters in 2009). The factors capture the date ranges, instead of having to write elaborate code to do range selection. How I do this is with a function "which.quarter" that returns the date-range ordered factor corresponding to a date, so I can do things like /my.data[my.data$date.range.factor >= which.quarter(the.start.date),] / The problem is in creating the date-range factor column. Applying "which.quarter()" to the date column returns a factor that is no-longer ordered. The cheat I used to fix this is to coerce the column class back to ordered factor, with this code: /### Creating a quarters factor column from a date column ## !! Why does unlist return a vector of factors, and not ordered factors? quarters <- function(date.column) { qtr.column <- unlist(sapply(date.column, which.quarter )) class(qtr.column) <- c("ordered", "factor" ) qtr.column }/ Question: 1) Is there a clean way to preserve the factor ordering thru the "unlist(sapply(..."? 2) Is there an easier way to manipulate ranges using ordered factors? Appreciatively - john mark agosta -- View this message in context: http://r.789695.n4.nabble.com/Selection-by-ordered-factors-tp4386203p4386203.html Sent from the R help mailing list archive at Nabble.com.