[R] How to order or sort a data.frame
John Kane
jrkrideau at yahoo.ca
Sun Aug 13 16:48:38 CEST 2006
I have a dataframe where I would like to order first
by variable, year, and then within that variable by
month.
So far the only way that I have seen to do this is to
order by year and then subset year and sort by month
and then do an rbind to get things back together.
Is this the right approach?
Example:
us.state <-rep("California", 23)
count <- c(774,283,774,283,508,283,774,283,602,283,
774,508,0,602,330,283,283,283,602,301,126, NA,301)
year <- c(2002, 2003, 2001, 2002, 2001, 2002, 2001,
2002, 2002, 2003,
2002, 2002, 2001, 2002, 2001, 2002, 2001,
2002, 2001, 2002,
2001, 2001, 2002)
month <- c( 1, 1, 10, 10, 11, 11, 12, 12,
2, 2, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,
9)
df <- data.frame (cbind(us.state,count, year, month))
# ordering as a factor works here
df1 <- df[order(df$year),]
df1
df2 <- subset(df1, year==2001)
# ordering as a factor works but not a good
appearance.
df3 <- df2[order(as.numeric(df2$month)),]
df3
This works but "month" is ordered as a factor and I
would prefer to coerce it into a numeric for
presentation purposes but
df3 <- df2[order(as.numeric(df2$month)),] does not
seem to work, nor has a couple of other things I've
tried.
Any suggestions gratefully received.
More information about the R-help
mailing list