Skip to contents

Mirrors the Python morie.infer_measurement_level(). Heuristically classifies a vector as one of "binary", "nominal", "ordinal", "interval", or "ratio" based on Stevens' (1946) typology.

Usage

morie_infer_measurement_level(x)

Arguments

x

A vector (any atomic type or factor).

Value

Character scalar in c("binary", "nominal", "ordinal", "interval", "ratio").

Details

Rules: logical or 2-level factor/character -> "binary"; ordered factor -> "ordinal"; unordered factor or character -> "nominal"; integer/numeric with non-negative range -> "ratio"; otherwise -> "interval".

Examples

morie_infer_measurement_level(c(0, 1, 1, 0)) # "binary"
#> [1] "binary"
morie_infer_measurement_level(factor(c("a", "b", "c"))) # "nominal"
#> [1] "nominal"
morie_infer_measurement_level(ordered(c("low", "med", "high"))) # "ordinal"
#> [1] "ordinal"
morie_infer_measurement_level(c(1.2, 3.4, 5.6)) # "ratio"
#> [1] "ratio"
morie_infer_measurement_level(c(-1.5, 0.0, 2.3)) # "interval"
#> [1] "interval"