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 nanStrategyIn)
Create a NaturalRanking with the given NaNStrategy.
|
NaturalRanking(NaNStrategy nanStrategyIn,
RandomGenerator randomGenerator)
Create a NaturalRanking with the given NaNStrategy, TiesStrategy.RANDOM
and the given source of random data.
|
NaturalRanking(NaNStrategy nanStrategyIn,
TiesStrategy tiesStrategyIn)
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 tiesStrategyIn)
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 tiesStrategyIn)
tiesStrategyIn
- the TiesStrategy to usepublic NaturalRanking(NaNStrategy nanStrategyIn)
nanStrategyIn
- the NaNStrategy to usepublic NaturalRanking(NaNStrategy nanStrategyIn, TiesStrategy tiesStrategyIn)
nanStrategyIn
- NaNStrategy to usetiesStrategyIn
- TiesStrategy to usepublic NaturalRanking(RandomGenerator randomGenerator)
randomGenerator
- source of random datapublic NaturalRanking(NaNStrategy nanStrategyIn, RandomGenerator randomGenerator)
nanStrategyIn
- 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 © 2017 CNES. All rights reserved.