Skip to content

Instantly share code, notes, and snippets.

@dlebauer
Created September 28, 2022 21:24

Revisions

  1. dlebauer created this gist Sep 28, 2022.
    28 changes: 28 additions & 0 deletions query_planting.R
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,28 @@
    library(traits)
    library(dplyr)
    library(ggplot2)
    options(betydb_url = 'https://www.betydb.org/',
    betydb_api_version = 'v1'
    )
    yields <- betydb_search(result_type = 'yields', genus = 'Panicum', limit = 'none')

    treatments <- betydb_query(table = 'treatments', limit = 'none') %>%
    dplyr::mutate(treatment_id = id) %>%
    dplyr::select(treatment_id, name, definition, control)
    managements <- betydb_query(table = 'managements', limit = 'none') %>%
    dplyr::filter(mgmttype %in% c('planting', "planting (plants / m2)", "row_spacing")) %>%
    dplyr::mutate(management_id = id) %>%
    dplyr::select(management_id, date, mgmttype, level, units)
    # now link managements to treatments
    m <- betydb_query(table = 'managements', associations_mode = 'ids', limit = 'none')
    managements_treatments <- m %>%
    select(treatment_id = `associated treatment ids`, management_id = id) %>%
    tidyr::unnest(cols = c(treatment_id))
    planting <- managements %>%
    left_join(managements_treatments, by = 'management_id') %>%
    left_join(treatments, by = 'treatment_id') %>%
    select(date, treatment_id) %>%
    distinct()

    y <- yields %>%
    left_join(planting, by = 'treatment_id')