The solution given by Jim is more correct

dd[order(as.numeric(substr(dd$b,4,5))),]

regards
M
jim holtman a écrit :
dd
      b x y z
1  chr2 A 8 1
2  chr1 D 3 1
3 chr15 A 9 1
4 chr13 C 9 2
# add column with just numbers
dd$sort <- as.integer(gsub("\\D+", "", dd$b))
dd[order(dd$sort),]  # notice it is a numeric, not character order
      b x y z sort
2  chr1 D 3 1    1
1  chr2 A 8 1    2
4 chr13 C 9 2   13
3 chr15 A 9 1   15

On Thu, May 20, 2010 at 8:28 AM, Yuan Jian <jayuan2...@yahoo.com> wrote:
Hello,

I have a dataframe:
dd <- data.frame(b = c("chr2", "chr1", "chr15", "chr13"),
      x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9),
       z = c(1, 1, 1, 2))

dd
      b x y z
1  chr2 A 8 1
2  chr1 D 3 1
3 chr15 A 9 1
4 chr13 C 9 2

Now I want to sort them according column "b", but only its number is considered:
      b x y z
1  chr1 D 3 1
2 chr13 C 9 2
3 chr15 A 9 1
4  chr2 A 8 1

thanks
jian






       [[alternative HTML version deleted]]


______________________________________________
R-help@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.






______________________________________________
R-help@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.

Reply via email to