Hello all,
I cannot seem to figure out this seemingly simple procedure.
I want to sort a data frame by a specified character vector.
So for :
df.. <-
data.frame(Season=rep(c("Summer","Fall","Winter","Spring"),4),Obsrunif(length(rep(c("Summer","Fall","Winter","Spring"),4))))
I want to sort the data frame by the seasons but in the order I specify
since alphapetically would not put the season in sequential order
I tried the following and a few other things but no dice. It looks like I
will have to convert to factors. Any thoughts? Thanks
df.. <-
df..[sort(as.factor(Df..$Season,levels=c("Summer","Fall","Winter","Spring"))),]
Josh
--
View this message in context:
http://r.789695.n4.nabble.com/Sorting-a-data-frame-by-specifying-a-vector-tp4645867.html
Sent from the R help mailing list archive at Nabble.com.
?order df[order(yourcolumn, ] -- Bert On Thu, Oct 11, 2012 at 10:08 AM, LCOG1 <jroll at lcog.org> wrote:> Hello all, > I cannot seem to figure out this seemingly simple procedure. > > I want to sort a data frame by a specified character vector. > > So for : > > df.. <- data.frame(Season=rep(c("Summer","Fall","Winter","Spring"),4),Obs> runif(length(rep(c("Summer","Fall","Winter","Spring"),4)))) > > I want to sort the data frame by the seasons but in the order I specify > since alphapetically would not put the season in sequential order > > I tried the following and a few other things but no dice. It looks like I > will have to convert to factors. Any thoughts? Thanks > > df.. <- > df..[sort(as.factor(Df..$Season,levels=c("Summer","Fall","Winter","Spring"))),] > > Josh > > > > -- > View this message in context: http://r.789695.n4.nabble.com/Sorting-a-data-frame-by-specifying-a-vector-tp4645867.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at 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.-- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
Hi,
In your dataset, it seems like it is already ordered in the way you wanted to.
df.. <-
data.frame(Season=rep(c("Summer","Fall","Winter","Spring"),4),Obsrunif(length(rep(c("Summer","Fall","Winter","Spring"),4))))
#Suppose the order you want is:
?vec2<-c("Summer","Winter","Fall","Spring")
df1<-df..[match(df..$Season,vec2),]
?row.names(df1)<-1:nrow(df1)
?df1
#?? Season?????? Obs
#1? Summer 0.2141001
#2? Winter 0.9318599
#3??? Fall 0.6722337
#4? Spring 0.1927715
#5? Summer 0.2141001
#6? Winter 0.9318599
#7??? Fall 0.6722337
#8? Spring 0.1927715
#9? Summer 0.2141001
#10 Winter 0.9318599
#11?? Fall 0.6722337
#12 Spring 0.1927715
#13 Summer 0.2141001
#14 Winter 0.9318599
#15?? Fall 0.6722337
#16 Spring 0.1927715
A.K.
----- Original Message -----
From: LCOG1 <jroll at lcog.org>
To: r-help at r-project.org
Cc:
Sent: Thursday, October 11, 2012 1:08 PM
Subject: [R] Sorting a data frame by specifying a vector
Hello all,
? I cannot seem to figure out this seemingly simple procedure.?
I want to sort a data frame by a specified character vector.
So for :
df.. <-
data.frame(Season=rep(c("Summer","Fall","Winter","Spring"),4),Obsrunif(length(rep(c("Summer","Fall","Winter","Spring"),4))))
I want to sort the data frame by the seasons but in the order I specify
since alphapetically would not put the season in sequential order
I tried the following and a few other things but no dice.? It looks like I
will have to convert to factors.? Any thoughts?? Thanks
df.. <-
df..[sort(as.factor(Df..$Season,levels=c("Summer","Fall","Winter","Spring"))),]
Josh
--
View this message in context:
http://r.789695.n4.nabble.com/Sorting-a-data-frame-by-specifying-a-vector-tp4645867.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________
R-help at 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.
On Thu, Oct 11, 2012 at 10:43 AM, ROLL Josh F <JRoll at lcog.org> wrote:> Sorry if I wasn't clear.Actually, my bad -- I didn't read carefully enough. But the answer is still essentially correct -- just change the ordering of the levels of Season, which, by default, is alphabetic. df$Season <- factor(df$Season, lev = c("Summer","Fall","Winter","Spring")) df <- df[order(df$Season),] Learn about factors (Read the Intro to R tutorial if you haven't already). They are very handy (and much despised by some). -- Bert The result I am looking for would be something like:> > # Season Obs > #1 Summer 0.2141001 > #5 Summer 0.2141001 > #9 Summer 0.2141001 > #13 Summer 0.2141001 > #3 Fall 0.6722337 > #7 Fall 0.6722337 > #11 Fall 0.6722337 > #15 Fall 0.6722337 > #2 Winter 0.9318599 > #6 Winter 0.9318599 > #10 Winter 0.9318599 > #14 Winter 0.9318599 > #4 Spring 0.1927715 > #8 Spring 0.1927715 > #12 Spring 0.1927715 > #16 Spring 0.1927715 > > Any other thoughts? > > JR > > > -----Original Message----- > From: Bert Gunter [mailto:gunter.berton at gene.com] > Sent: Thursday, October 11, 2012 10:19 AM > To: ROLL Josh F > Cc: r-help at r-project.org > Subject: Re: [R] Sorting a data frame by specifying a vector > > ?order > df[order(yourcolumn, ] > > -- Bert > > > On Thu, Oct 11, 2012 at 10:08 AM, LCOG1 <jroll at lcog.org> wrote: >> Hello all, >> I cannot seem to figure out this seemingly simple procedure. >> >> I want to sort a data frame by a specified character vector. >> >> So for : >> >> df.. <- >> data.frame(Season=rep(c("Summer","Fall","Winter","Spring"),4),Obs>> runif(length(rep(c("Summer","Fall","Winter","Spring"),4)))) >> >> I want to sort the data frame by the seasons but in the order I >> specify since alphapetically would not put the season in sequential >> order >> >> I tried the following and a few other things but no dice. It looks >> like I will have to convert to factors. Any thoughts? Thanks >> >> df.. <- >> df..[sort(as.factor(Df..$Season,levels=c("Summer","Fall","Winter","Spr >> ing"))),] >> >> Josh >> >> >> >> -- >> View this message in context: >> http://r.789695.n4.nabble.com/Sorting-a-data-frame-by-specifying-a-vec >> tor-tp4645867.html Sent from the R help mailing list archive at >> Nabble.com. >> >> ______________________________________________ >> R-help at 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. > > > > -- > > Bert Gunter > Genentech Nonclinical Biostatistics > > Internal Contact Info: > Phone: 467-7374 > Website: > http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm-- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm