How to order or sort a data.frame
--- Dimitrios Rizopoulos
<Dimitris.Rizopoulos at med.kuleuven.be> wrote:
Quoting John Kane <jrkrideau at yahoo.ca>:
--- Dimitrios Rizopoulos <Dimitris.Rizopoulos at med.kuleuven.be> wrote:
try the following: mdf <- data.frame(us.state, count, year, month) mdf[order(mdf$year, mdf$month), ]
Thansk to Dimitris and Dieter. This has helped
since
seems to have shown me a way around the problem.
It
just means that I have to sort the data earlier. What my example did not show clearly is that when
I
subset the data the variable 'month' which is
numeric
in the original dataframe becomes a factor. I was wondering if there was a way to sort the factor so that I would get a numeric sort. So far I have
not
been able to see how to coerce the factor "month"
into
a numeric when using 'order"
for converting factors to numeric check R FAQ 7.10. Best, Dimitris
Argh! Of course. I should never trust my memory! Thanks.
Thanks for helpl. Hi Hadley, I have not had time to check out the reshape but thanks.
Ph.D. Student Biostatistical Centre School of Public Health Catholic University of Leuven Address: Kapucijnenvoer 35, Leuven, Belgium Tel: +32/(0)16/336899 Fax: +32/(0)16/337015 Web: http://med.kuleuven.be/biostat/
http://www.student.kuleuven.be/~m0390867/dimitris.htm
Quoting John Kane <jrkrideau at yahoo.ca>:
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.
______________________________________________ R-help at stat.math.ethz.ch 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. Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
______________________________________________ R-help at stat.math.ethz.ch 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. Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm