I would be very surprised if any version of R ever ordered strings in the manner you want. R has no way of knowing that some digit strings nestled amongst alphabetic characters should be treated as numbers.

To achieve what you want you need to parse the strings yourself, e.g.:
> x <- c("ABC 10", "ABC 2")
> x1 <- do.call("rbind", strsplit(x, " "))
> x2 <- list(x1[,1], as.numeric(as.character(x1[,2])))
> do.call("order", x2)
[1] 2 1
>

The above will only work if each element of 'x' has the same number of spaces in it (i.e., splitting on a space breaks each element into the same number of components).

hope this helps,

Tony Plate

At Thursday 04:37 PM 7/10/2003 -0400, kschlauc wrote:
Can someone tell me which version of R began to order
alpha-numeric strings in this manner:
"ABC 10" < "ABC 2"
rather than
"ABC 2" < "ABC 10" ?

And, is there a way to force "ABC 2"
to be ordered as a value less than "ABC 10"?

thank you,
Karen
[EMAIL PROTECTED]

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help

______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to