public class NaturalRanking extends Object implements RankingAlgorithm
Ranking based on the natural ordering on doubles.
NaNs are treated according to the configured NaNStrategy
and ties
are handled using the selected TiesStrategy
.
Configuration settings are supplied in optional constructor arguments.
Defaults are NaNStrategy.FAILED
and TiesStrategy.AVERAGE
,
respectively. When using TiesStrategy.RANDOM
, a
RandomGenerator
may be supplied as a constructor argument.
Examples:
Input data: (20, 17, 30, 42.3, 17, 50, Double.NaN, Double.NEGATIVE_INFINITY, 17) | ||
---|---|---|
NaNStrategy | TiesStrategy | rank(data) |
default (NaNs maximal) | default (ties averaged) | (5, 3, 6, 7, 3, 8, 9, 1, 3) |
default (NaNs maximal) | MINIMUM | (5, 2, 6, 7, 2, 8, 9, 1, 2) |
MINIMAL | default (ties averaged) | (6, 4, 7, 8, 4, 9, 1.5, 1.5, 4) |
REMOVED | SEQUENTIAL | (5, 2, 6, 7, 3, 8, 1, 4) |
MINIMAL | MAXIMUM | (6, 5, 7, 8, 5, 9, 2, 2, 5) |
Modifier and Type | Field and Description |
---|---|
static NaNStrategy |
DEFAULT_NAN_STRATEGY
default NaN strategy
|
static TiesStrategy |
DEFAULT_TIES_STRATEGY
default ties strategy
|
Constructor and Description |
---|
NaturalRanking()
Create a NaturalRanking with default strategies for handling ties and NaNs.
|
NaturalRanking(NaNStrategy nanStrategy)
Create a NaturalRanking with the given NaNStrategy.
|
NaturalRanking(NaNStrategy nanStrategy,
RandomGenerator randomGenerator)
Create a NaturalRanking with the given NaNStrategy, TiesStrategy.RANDOM
and the given source of random data.
|
NaturalRanking(NaNStrategy nanStrategy,
TiesStrategy tiesStrategy)
Create a NaturalRanking with the given NaNStrategy and TiesStrategy.
|
NaturalRanking(RandomGenerator randomGenerator)
Create a NaturalRanking with TiesStrategy.RANDOM and the given
RandomGenerator as the source of random data.
|
NaturalRanking(TiesStrategy tiesStrategy)
Create a NaturalRanking with the given TiesStrategy.
|
Modifier and Type | Method and Description |
---|---|
NaNStrategy |
getNanStrategy()
Return the NaNStrategy
|
TiesStrategy |
getTiesStrategy()
Return the TiesStrategy
|
double[] |
rank(double[] data)
Rank
data using the natural ordering on Doubles, with
NaN values handled according to nanStrategy and ties
resolved using tiesStrategy. |
public static final NaNStrategy DEFAULT_NAN_STRATEGY
public static final TiesStrategy DEFAULT_TIES_STRATEGY
public NaturalRanking()
public NaturalRanking(TiesStrategy tiesStrategy)
tiesStrategy
- the TiesStrategy to usepublic NaturalRanking(NaNStrategy nanStrategy)
nanStrategy
- the NaNStrategy to usepublic NaturalRanking(NaNStrategy nanStrategy, TiesStrategy tiesStrategy)
nanStrategy
- NaNStrategy to usetiesStrategy
- TiesStrategy to usepublic NaturalRanking(RandomGenerator randomGenerator)
randomGenerator
- source of random datapublic NaturalRanking(NaNStrategy nanStrategy, RandomGenerator randomGenerator)
nanStrategy
- NaNStrategy to userandomGenerator
- source of random datapublic NaNStrategy getNanStrategy()
public TiesStrategy getTiesStrategy()
public double[] rank(double[] data)
data
using the natural ordering on Doubles, with
NaN values handled according to nanStrategy
and ties
resolved using tiesStrategy.
rank
in interface RankingAlgorithm
data
- array to be rankedNotANumberException
- if the selected NaNStrategy
is FAILED
and a Double.NaN
is encountered in the input dataCopyright © 2003–2016 The Apache Software Foundation. All rights reserved.