This function can be used to detect exceptionally high or low scores in a vector.

exceptionalScore(
  x,
  prob = 0.025,
  both = TRUE,
  silent = FALSE,
  quantileCorrection = 1e-04,
  quantileType = 8
)

Arguments

x

Vector in which to detect exceptional scores.

prob

Probability that a score is exceptionally positive or negative; i.e. scores with a quartile lower than prob or higher than 1-prob are considered exceptional (if both is TRUE, at least). So, note that a prob of .025 means that if both=TRUE, the most exceptional 5% of the values is marked as such.

both

Whether to consider values exceptional if they're below prob as well as above 1-prob, or whether to only consider values exceptional if they're below prob is prob is < .5, or above prob if prob > .5.

silent

Can be used to suppress messages.

quantileCorrection

By how much to correct the computed quantiles; this is used because when a distribution is very right-skewed, the lowest quantile is the lowest value, which is then also the mode; without subtracting a correction, almost all values would be marked as 'exceptional'.

quantileType

The algorithm used to compute the quantiles; see stats::quantile().

Value

A logical vector, indicating for each value in the supplied vector whether it is exceptional.

Details

Note that of course, by definition, prob or 2 * prob percent of the values is exceptional, so it is usually not a wise idea to remove scores based on their 'exceptionalness'. Instead, use exceptionalScores(), which calls this function, to see how often participants answered exceptionally, and remove them based on that.

Examples

exceptionalScore(
  c(1,1,2,2,2,3,3,3,4,4,4,5,5,5,5,6,6,7,8,20),
  prob=.05
);
#>  [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
#> [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE