#' Converts raw DMS extract variables to appropriate data types.
#'
#' This function converts variables from the DMS extracts into appropriate
#' R data types; currently, that means converting
#' character dates and datetimes to Dates and POSIXct.
#'
#' Currently, this function just converts character dates and datetimes to
#' Date and POSIXct where appropriate.
#' This function expects the variable names generated by
#' the \code{\link{rename}} function, and is only meant to be used internally
#' by \code{\link{clean_to1}}
#'
#' @param renamed The output of the \code{\link{rename}} function.
convert <- function(renamed) {
# Keep the originals for comparison
converted <- renamed
# Convert dates to Dates
# Preenrollment
converted$preenrollment$VisitDate <-
as.Date(converted$preenrollment$VisitDate, format = "%m/%d/%Y")
# Master
converted$master$BirthDate <- as.Date(converted$master$BirthDate,
format = "%m/%d/%Y")
converted$master$EnrollDate <- as.Date(converted$master$EnrollDate,
format = "%m/%d/%Y")
# Medical history and risk factors
converted$medicalhistory$VisitDate <-
as.Date(converted$medicalhistory$VisitDate, format = "%m/%d/%Y")
converted$riskfactor$VisitDate <-
as.Date(converted$riskfactor$VisitDate, format = "%m/%d/%Y")
# TST, QFT, TSPOT enroll dates
converted$skintest$EnrollDate <- as.Date(converted$skintest$EnrollDate,
format = "%m/%d/%Y")
converted$qft$EnrollDate <- as.Date(converted$qft$EnrollDate,
format = "%m/%d/%Y")
converted$tspot$EnrollDate <- as.Date(converted$tspot$EnrollDate,
format = "%m/%d/%Y")
# TST, QFT, TSPOT DMS submission dates
converted$skintest$date_submitted <-
as.Date(converted$skintest$date_submitted,
format = "%m/%d/%Y")
converted$qft$date_submitted <-
as.Date(converted$qft$date_submitted,
format = "%m/%d/%Y")
converted$tspot$date_submitted <-
as.Date(converted$tspot$date_submitted,
format = "%m/%d/%Y")
# LTBI treatment initiation
converted$ltbi$OfferDate <- as.Date(converted$ltbi$OfferDate,
format = "%m/%d/%Y")
converted$ltbi$ScriptPickUpDate <-
as.Date(converted$ltbi$ScriptPickUpDate, format = "%m/%d/%Y")
converted$ltbi$EnrollDate <- as.Date(converted$ltbi$EnrollDate,
format = "%m/%d/%Y")
# LTBI Followups
converted$ltbifollowup$VisitDate <-
as.Date(converted$ltbifollowup$VisitDate, format = "%m/%d/%Y")
converted$ltbifollowup$NextFollowUpDate <-
as.Date(converted$ltbifollowup$NextFollowUpDate, format = "%m/%d/%Y")
converted$ltbifollowup$EnrollDate <-
as.Date(converted$ltbifollowup$EnrollDate, format = "%m/%d/%Y")
# Semiannual followups
converted$followupfortb$VisitDate <-
as.Date(converted$followupfortb$VisitDate, format = "%m/%d/%Y")
converted$followupfortb$EnrollDate <-
as.Date(converted$followupfortb$EnrollDate, format = "%m/%d/%Y")
# Convert datetimes to POSIXct
converted$skintest$dt_placed <-
as.POSIXct(converted$skintest$dt_placed, format = "%m/%d/%Y %H:%M")
converted$skintest$dt_read <-
as.POSIXct(converted$skintest$dt_read, format = "%m/%d/%Y %H:%M")
converted$qft$dt_placed <-
as.POSIXct(converted$qft$dt_placed, format = "%m/%d/%Y %H:%M")
converted$tspot$dt_placed <-
as.POSIXct(converted$tspot$dt_placed, format = "%m/%d/%Y %H:%M")
# Convert all LocalIDs to character
converted$master$LocalID1 <- as.character(converted$master$LocalID1)
converted$master$LocalID2 <- as.character(converted$master$LocalID2)
converted$master$LocalID3 <- as.character(converted$master$LocalID3)
# Convert blanks to NA
converted$master$LocalID1[converted$master$LocalID1 %in% ""] <- NA
converted$master$LocalID2[converted$master$LocalID2 %in% ""] <- NA
converted$master$LocalID3[converted$master$LocalID3 %in% ""] <- NA
converted
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.