[R] Equivalent of gtools::mixedsort in R base

William Dunlap wdunlap at tibco.com
Mon Mar 12 15:56:43 CET 2018


       1- mixedorder does not work in a "do.call(mixedorder, mydataframe)"
call like the order function does

This is tangential, but do.call(order, mydataframe) is not safe to use in a
general purpose function either - you need to remove the names from
the second argument:
  > d <- data.frame(method=c("New","New","Old","Old","Old"), result=5:1)
  > do.call(order, d)
  Error in match.arg(method) : 'arg' must be NULL or a character vector
  > do.call(order, unname(as.list(d)))
  [1] 2 1 5 4 3


Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Sun, Mar 11, 2018 at 9:15 PM, Sebastien Bihorel <
sebastien.bihorel at cognigencorp.com> wrote:

> Hi,
>
> 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.
>
> Problems:
> 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)?
>
> Thanks
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list