[R] Equivalent of gtools::mixedsort in R base
ggrothendieck at gmail.com
Mon Mar 12 20:49:10 CET 2018
split any mixed columns into letter and number columns
and then order can be used on that:
DF <- data.frame(x = c("a10", "a2", "a1"))
o <- do.call("order", transform(DF, let = gsub("\\d", "", x),
as.numeric(gsub("\\D", "", x)),
x = NULL))
DF[o,, drop = FALSE ]
On Mon, Mar 12, 2018 at 12:15 AM, Sebastien Bihorel
<sebastien.bihorel at cognigencorp.com> wrote:
> Searching for functions that would order strings that mix characters and numbers in a "natural" way (ie, "a1 a2 a10" instead of "a1 a10 a2"), I found the mixedsort and mixedorder from the gtools package.
> 1- mixedorder does not work in a "do.call(mixedorder, mydataframe)" call like the order function does
> 2- gtools has not been updated in 2.5 years
> Are you aware of an equivalent of this function in base R or a another contributed package (with correction of problem #1)?
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
email: ggrothendieck at gmail.com
More information about the R-help