knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
In this example, we start with a data frame with two columns, one with full dates and one with partial dates. The goal is to consolidate these dates into one ISO 8601 formatted date column.
library(sdtmval) library(dplyr) raw_dates <- data.frame( raw_full = c( rep(NA, 8), "02/05/2017", "02-05-2017" ), raw_partial = c( "UN-UNK-UNKN", "UN/UNK/UNKN", "UN UNK UNKN", "UN-UNK-2017", "UN-Feb-2017", "05-FEB-2017", "05-UNK-2017", "05-Feb-UNKN", rep(NA, 2) ) ) knitr::kable(raw_dates)
First, we will re-arrange the partial dates into the same format as the full dates using reshape_pdates()
. That will let us combine the full and partial dates into one column with a MM/DD/YYYY format. Then, using reshape_adates()
, we will convert all dates to the YYYY-MM-DD format.
working_dates <- raw_dates %>% mutate( partial = reshape_pdates(raw_partial), all = coalesce(raw_full, partial), all = reshape_adates(all) ) knitr::kable(working_dates)
For situations where missing date elements should be removed, use the trim_dates()
function.
trimmed_dates <- mutate(working_dates, trimmed = trim_dates(all)) knitr::kable(trimmed_dates)
If imputed dates are needed, use the impute_pdates()
function. Both start and end dates can be imputed using standard imputation rules.
imputed_dates <- working_dates %>% mutate( start = impute_pdates(all, ptype = "start"), end = impute_pdates(all, ptype = "end") ) knitr::kable(imputed_dates)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.