order alphanumeric values from a list
mmixedOrder(
...,
decreasing = FALSE,
blanksFirst = TRUE,
na.last = NAlast,
keepNegative = FALSE,
keepInfinite = FALSE,
keepDecimal = FALSE,
ignore.case = TRUE,
useCaseTiebreak = TRUE,
sortByName = FALSE,
NAlast = TRUE,
honorFactor = TRUE,
verbose = FALSE,
matrixAsDF = TRUE
)
arguments treated as a list
of vectors to be ordered in
proper order, based upon the mechanism by base::order()
, and
as such data.frame
is equivalent to a list
.
arguments passed to mixedOrder()
, except sortByName
which is not
passed along.
logical
indicating whether to print verbose output,
passed as verbose - 1
to mixedOrder()
.
logical
if ...
supplies only one matrix object,
then matrixAsDF=TRUE
will cause it to be converted to a data.frame
,
then coerce to a list
before processing.
By default, in the event only one matrix object is supplied,
this conversion is performed, in order to define a sort order based upon
each column in order, consistent with behavior of data.frame
input.
integer vector of row orders
This function is a minor extension to mixedOrder()
,
"multiple mixedOrder()
",
which accepts list
input, similar to how base::order()
operates.
This function is mainly useful when sorting something like a
data.frame
, where ties in column 1 should be maintained then
broken by non-equal values in column 2, and so on.
This function essentially converts any non-numeric column
to a factor, whose levels are sorted using mixedOrder()
.
That factor is converted to numeric value, multiplied by -1
when decreasing=TRUE
. Finally the list of numeric vectors
is passed to base::order()
.
In fact, mixedSortDF()
calls this mmixedOrder()
function,
in order to sort a data.frame
properly by column.
See mixedOrder()
and mixedSort()
for a better
description of how the sort order logic operates.
Other jam sort functions:
mixedOrder()
,
mixedSortDF()
,
mixedSorts()
,
mixedSort()
Other jam string functions:
asSize()
,
breaksByVector()
,
cPasteSU()
,
cPasteS()
,
cPasteUnique()
,
cPasteU()
,
cPaste()
,
fillBlanks()
,
formatInt()
,
gsubOrdered()
,
gsubs()
,
makeNames()
,
mixedOrder()
,
mixedSortDF()
,
mixedSorts()
,
mixedSort()
,
nameVectorN()
,
nameVector()
,
padInteger()
,
padString()
,
pasteByRowOrdered()
,
pasteByRow()
,
sizeAsNum()
,
tcount()
,
ucfirst()
,
uniques()
Other jam string functions:
asSize()
,
breaksByVector()
,
cPasteSU()
,
cPasteS()
,
cPasteUnique()
,
cPasteU()
,
cPaste()
,
fillBlanks()
,
formatInt()
,
gsubOrdered()
,
gsubs()
,
makeNames()
,
mixedOrder()
,
mixedSortDF()
,
mixedSorts()
,
mixedSort()
,
nameVectorN()
,
nameVector()
,
padInteger()
,
padString()
,
pasteByRowOrdered()
,
pasteByRow()
,
sizeAsNum()
,
tcount()
,
ucfirst()
,
uniques()
# test factor level order
factor1 <- factor(c("Cnot9", "Cnot8", "Cnot10"))
sort(factor1)
#> [1] Cnot10 Cnot8 Cnot9
#> Levels: Cnot10 Cnot8 Cnot9
mixedSort(factor1)
#> [1] Cnot8 Cnot9 Cnot10
#> Levels: Cnot10 Cnot8 Cnot9
factor1[mixedOrder(factor1)]
#> [1] Cnot8 Cnot9 Cnot10
#> Levels: Cnot10 Cnot8 Cnot9
factor1[mixedOrder(factor1, honorFactor=FALSE)]
#> [1] Cnot8 Cnot9 Cnot10
#> Levels: Cnot10 Cnot8 Cnot9
factor1[mixedOrder(factor1, honorFactor=TRUE)]
#> [1] Cnot10 Cnot8 Cnot9
#> Levels: Cnot10 Cnot8 Cnot9
factor1[mmixedOrder(list(factor1))]
#> Warning: 'length(x) = 2 > 1' in coercion to 'logical(1)'
#> [1] Cnot10 Cnot8 Cnot9
#> Levels: Cnot10 Cnot8 Cnot9
factor1[mmixedOrder(list(factor1), honorFactor=FALSE)]
#> Warning: 'length(x) = 2 > 1' in coercion to 'logical(1)'
#> [1] Cnot8 Cnot9 Cnot10
#> Levels: Cnot10 Cnot8 Cnot9
factor1[mmixedOrder(list(factor1), honorFactor=TRUE)]
#> Warning: 'length(x) = 2 > 1' in coercion to 'logical(1)'
#> [1] Cnot10 Cnot8 Cnot9
#> Levels: Cnot10 Cnot8 Cnot9