R/convert.r

Defines functions convert

Documented in convert

#' 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

}
mmparker/to1check documentation built on May 23, 2019, 5:05 a.m.