Skip to contents

Returns the cut-off itself, rather than applying it. Useful for reporting which number a respondent was compared against, and for checking the package against the printed tables.

Usage

eiod_lookup_cutoff(
  indicator,
  group = NULL,
  metric = c("abs", "rel"),
  percentile = NULL,
  published = FALSE
)

# S3 method for class 'eiod_cutoff'
print(x, digits = 15, ...)

# S3 method for class 'eiod_cutoff'
Ops(e1, e2)

Arguments

indicator

One of the seven indicator names.

group

Demographic group 1-8, or `NULL` for all eight.

metric

`"abs"` for the Table 3 absolute threshold, or `"rel"` for a Table 4 relative benchmark cut-point.

percentile

Required when `metric = "rel"`: a multiple of 10 from 10 to 90.

published

**No longer has any effect**, and retained only so existing scripts keep working. Until October 2026 the package stored 80 relative eutrophication rows pre-rescaled, and this argument switched between the stored and the published figure. Nothing is rescaled any more - `value` is the published figure for all 616 rows - so both settings return the same thing. See `vignette("eutrophication")`.

x

An `eiod_cutoff` object.

digits

Significant digits to display. The default of 15 shows every published digit; the widest cut-off in the tables needs 14.

...

Ignored.

e1, e2

Operands.

Value

A named numeric vector of class `eiod_cutoff`, named by demographic group label. Use `print(x, digits = )` to change the displayed precision, or `as.numeric(x)` to drop the class.

Printing, and why it has its own method

The published cut-offs need up to **14 significant digits** - `water` for Female 10+ is `1726.3821057877`, and 15 of the 616 values need all 14. R's default `options(digits = 7)` would print that as `1726.382`, which looks as though the package had rounded the guideline.

Storage was never the problem; the default *display* was. The returned object therefore carries a class and a print method that uses 15 significant digits and shows, alongside each value, the literal text transcribed from the paper:

“` Male 10+ yr 14.2377570161 as published 14.2377570161 “`

The `as printed` column is `value_published_str` from [eiod_cutoffs] - a character string that has never been through a numeric type. If you need an exact decimal comparison against the PDF, compare against that, not against a rendering of a double. (The identical complaint, and the identical fix, arose in the companion Stata package in October 2026.)

Nothing here is rescaled

**Every value this function returns is exactly what the methods paper prints**, for all 616 cut-offs. The package does not adjust a published number anywhere, so you can check any row of [eiod_cutoffs] against the PDF and expect a character-for-character match.

Where the paper's own units need reconciling - which happens for eutrophication, and only for eutrophication - the adjustment is applied to **your data** at the moment of comparison, is announced in a message, and is described in `vignette("eutrophication")`.

The object is an ordinary named numeric underneath: `[`, `c()` and arithmetic all return plain numbers, so nothing downstream needs to know about the class.

Examples

# the HESD biodiversity criterion, all groups
eiod_lookup_cutoff("biodiv", metric = "abs")
#> Table 3 absolute threshold - Biodiversity loss
#>   unit: PDF*year per capita per day
#> 
#>   group            value             as printed
#>   Male 0-1.9 yr    3.6896027444e-13  3.6896027444E-13
#>   Male 2-4.9 yr    5.7244838747e-13  5.7244838747E-13
#>   Male 5-9.9 yr    7.8836516181e-13  7.8836516181E-13
#>   Male 10+ yr      1.2844358718e-12  1.2844358718E-12
#>   Female 0-1.9 yr  3.5749209701e-13  3.5749209701E-13
#>   Female 2-4.9 yr  5.3018709712e-13  5.3018709712E-13
#>   Female 5-9.9 yr  7.2382064564e-13  7.2382064564E-13
#>   Female 10+ yr    1.033173291e-12   1.0331732910E-12
#> 
#>   printed at 15 significant digits.
#>   `as printed` is the literal text this package ships, which has
#>   never been through a numeric type. Nothing is rescaled here.

# the HDLEI biodiversity criterion
eiod_lookup_cutoff("biodiv", metric = "rel", percentile = 30)
#> Tables 4a-4g relative benchmark, P30 - Biodiversity loss
#>   unit: PDF*year per capita per day
#> 
#>   group            value             as printed
#>   Male 0-1.9 yr    2.423427197e-13   2.4234271970E-13
#>   Male 2-4.9 yr    3.7599901323e-13  3.7599901323E-13
#>   Male 5-9.9 yr    5.1781877527e-13  5.1781877527E-13
#>   Male 10+ yr      8.436509403e-13   8.4365094030E-13
#>   Female 0-1.9 yr  2.3481012202e-13  2.3481012202E-13
#>   Female 2-4.9 yr  3.4824069682e-13  3.4824069682E-13
#>   Female 5-9.9 yr  4.7542425566e-13  4.7542425566E-13
#>   Female 10+ yr    6.786151318e-13   6.7861513180E-13
#> 
#>   printed at 15 significant digits.
#>   `as printed` is the literal text this package ships, which has
#>   never been through a numeric type. Nothing is rescaled here.

# one group, printed to every published digit
eiod_lookup_cutoff("water", group = 8, metric = "abs")
#> Table 3 absolute threshold - Water use
#>   unit: litres per capita per day
#> 
#>   group          value            as printed
#>   Female 10+ yr  1726.3821057877  1726.3821057877
#> 
#>   printed at 15 significant digits.
#>   `as printed` is the literal text this package ships, which has
#>   never been through a numeric type. Nothing is rescaled here.

# what R's default options(digits = 7) would have shown instead
print(c(eiod_lookup_cutoff("water", group = 8, metric = "abs")))
#> Female 10+ yr 
#>      1726.382