Get a concept in an ontology

get_concept(..., external = FALSE, ontology = NULL)

Arguments

...

combination of column name and value to filter that column by. The value to filter by can be provided as regular expression, if regex = TRUE.

external

logical(1)
whether or not to return merely the table of external concepts.

ontology

ontology(1)
either a path where the ontology is stored, or an already loaded ontology.

Value

A table of a subset of the ontology according to the values in ...

Examples

ontoDir <- system.file("extdata", "crops.rds", package = "ontologics")
onto <- load_ontology(path = ontoDir)

# exact matches from a loaded ontology ...
get_concept(label = "FODDER CROPS", ontology = onto)
#> # A tibble: 1 × 9
#>   id    label   description class has_broader has_close_match has_narrower_match
#>   <chr> <chr>   <chr>       <chr> <chr>       <chr>           <chr>             
#> 1 .05   FODDER… NA          group NA          NA              NA                
#> # ℹ 2 more variables: has_broader_match <chr>, has_exact_match <chr>

# ... or a path
get_concept(label = c("FODDER CROPS", "CEREALS"), ontology = ontoDir)
#> # A tibble: 2 × 9
#>   id    label   description class has_broader has_close_match has_narrower_match
#>   <chr> <chr>   <chr>       <chr> <chr>       <chr>           <chr>             
#> 1 .02   CEREALS NA          group NA          NA              NA                
#> 2 .05   FODDER… NA          group NA          NA              NA                
#> # ℹ 2 more variables: has_broader_match <chr>, has_exact_match <chr>

# ignore querries that would not be valid in filter()
get_concept(label != 'Bioenergy woody' & has_broader == '.01', ontology = onto)
#> # A tibble: 2 × 9
#>   id     label  description class has_broader has_close_match has_narrower_match
#>   <chr>  <chr>  <chr>       <chr> <chr>       <chr>           <chr>             
#> 1 .01.01 Bioen… NA          class .01         NA              NA                
#> 2 .01.03 Other… NA          class .01         NA              NA                
#> # ℹ 2 more variables: has_broader_match <chr>, has_exact_match <chr>

# extract concepts based on regular expressions
library(stringr)
get_concept(str_detect(label, "crop") & str_detect(id, ".03$"), ontology = ontoDir)
#> # A tibble: 3 × 9
#>   id     label  description class has_broader has_close_match has_narrower_match
#>   <chr>  <chr>  <chr>       <chr> <chr>       <chr>           <chr>             
#> 1 .01.03 Other… NA          class .01         NA              NA                
#> 2 .05.03 Other… NA          class .05         NA              NA                
#> 3 .15.03 Other… NA          class .15         NA              NA                
#> # ℹ 2 more variables: has_broader_match <chr>, has_exact_match <chr>