[R] Sorting alphanumerically

Mark mtb954 at gmail.com
Sat Feb 25 05:21:58 CET 2006


Thank you all, for your help.
Mark

On 2/24/06, Chuck Cleland <ccleland at optonline.net> wrote:
> Does this help?
>
> ID <- paste("g", sample(1:100, 100, replace=FALSE), sep="")
>
> ID
>    [1] "g88"  "g5"   "g79"  "g67"  "g43"  "g21"  "g66"
>    [8] "g9"   "g38"  "g86"  "g12"  "g85"  "g74"  "g34"
>   [15] "g52"  "g95"  "g6"   "g22"  "g70"  "g87"  "g7"
>   [22] "g83"  "g63"  "g42"  "g26"  "g65"  "g16"  "g97"
>   [29] "g76"  "g2"   "g90"  "g23"  "g15"  "g82"  "g75"
>   [36] "g58"  "g17"  "g20"  "g96"  "g91"  "g31"  "g33"
>   [43] "g48"  "g32"  "g93"  "g54"  "g49"  "g36"  "g81"
>   [50] "g57"  "g27"  "g14"  "g62"  "g10"  "g80"  "g71"
>   [57] "g28"  "g37"  "g89"  "g8"   "g94"  "g68"  "g56"
>   [64] "g92"  "g41"  "g11"  "g4"   "g99"  "g55"  "g60"
>   [71] "g18"  "g69"  "g19"  "g64"  "g39"  "g1"   "g53"
>   [78] "g44"  "g24"  "g100" "g35"  "g3"   "g40"  "g47"
>   [85] "g51"  "g46"  "g61"  "g45"  "g50"  "g25"  "g13"
>   [92] "g73"  "g77"  "g30"  "g84"  "g78"  "g29"  "g59"
>   [99] "g72"  "g98"
>
> ID[order(as.numeric(substr(ID, start=2, stop=nchar(ID))))]
>    [1] "g1"   "g2"   "g3"   "g4"   "g5"   "g6"   "g7"
>    [8] "g8"   "g9"   "g10"  "g11"  "g12"  "g13"  "g14"
>   [15] "g15"  "g16"  "g17"  "g18"  "g19"  "g20"  "g21"
>   [22] "g22"  "g23"  "g24"  "g25"  "g26"  "g27"  "g28"
>   [29] "g29"  "g30"  "g31"  "g32"  "g33"  "g34"  "g35"
>   [36] "g36"  "g37"  "g38"  "g39"  "g40"  "g41"  "g42"
>   [43] "g43"  "g44"  "g45"  "g46"  "g47"  "g48"  "g49"
>   [50] "g50"  "g51"  "g52"  "g53"  "g54"  "g55"  "g56"
>   [57] "g57"  "g58"  "g59"  "g60"  "g61"  "g62"  "g63"
>   [64] "g64"  "g65"  "g66"  "g67"  "g68"  "g69"  "g70"
>   [71] "g71"  "g72"  "g73"  "g74"  "g75"  "g76"  "g77"
>   [78] "g78"  "g79"  "g80"  "g81"  "g82"  "g83"  "g84"
>   [85] "g85"  "g86"  "g87"  "g88"  "g89"  "g90"  "g91"
>   [92] "g92"  "g93"  "g94"  "g95"  "g96"  "g97"  "g98"
>   [99] "g99"  "g100"
>
> The idea is to drop the leading "g", convert to numeric, and then order.
>
> mtb954 mtb954 wrote:
> > I'm trying to sort a DATAFRAME by a column "ID" that contains
> > alphanumeric data. Specifically,"ID" contains integers all preceeded
> > by the character "g" as in:
> >
> > g1, g6, g3, g19, g100, g2, g39
> >
> > I am using the following code:
> >
> > DATAFRAME=DATAFRAME[order(DATAFRAME1$ID),]
> >
> > and was hoping it would sort the dataframe by ID in the following manner
> >
> > g1, g2, g3, g6, g19, g39, g100
> >
> > but it doesn't sort at all. Could anyone point out my mistake?
> >
> > Thank you.
> >
> > Mark
> >
> > ______________________________________________
> > 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
> >
>
> --
> Chuck Cleland, Ph.D.
> NDRI, Inc.
> 71 West 23rd Street, 8th floor
> New York, NY 10010
> tel: (212) 845-4495 (Tu, Th)
> tel: (732) 452-1424 (M, W, F)
> fax: (917) 438-0894
>




More information about the R-help mailing list