Skip to contents

[Experimental] The function search_ecotox() returns fields from the ECOTOX database as is. Fields that represent units are not standardised in the database. Therefore, this format is not consistently used throughout the database. process_ecotox_units() takes a data.frame returned by search_ecotox(), locates unit columns, represented by text, sanitises the text and converts them to units::mixed_units() objects. It will sanitise the unit fields as much as possible. Units that could not be interpreted are returned as arbitrary unit.

Usage

process_ecotox_units(x, .fns = as_unit_ecotox, ..., .names = NULL)

Arguments

x

A data.frame obtained with search_ecotox(), for which the units need to be processed.

.fns

Function to convert character to unit. By default as_unit_ecotox() is used which also sanitises the input. You can also write a custom function.

...

Arguments passed to .fns.

.names

A 'glue' specification used to rename the unit columns. By default it is "{.col}", which will overwrite existing text columns with unit columns. You can for instance add a suffix with "{.col}_unit" if you want to rename the resulting unit columns.

Value

Returns a data.frame in which the columns containing unit information is converted from the character format from the database to actual unit objects ( ?units::units).

Author

Pepijn de Vries

Examples

if (check_ecotox_availability()) {
  df <- search_ecotox(
    list(
      latin_name    = list(
        terms          = c("Skeletonema", "Daphnia"),
        method         = "contains"
      ),
      chemical_name = list(
        terms          = "benzene",
        method         = "exact"
      )
    ), list_ecotox_fields("full"))

  df_unit <-
    process_ecotox_units(df, warn = FALSE)
}