R/dxdateClean.R

Defines functions dxdateClean

Documented in dxdateClean

dxdateClean <- function(data,d){
  message("dxdateClean() only includes followup through June 30th 2015.  If followup goes longer than that, it is time to update the function")
  df <- data

  # 1997
  x <- df[[d]]
  df$dtint97n <- as.Date(ifelse(df$report97==1 & df$dtint97=="1998-01-01" & !is.na(df$dxdate),
                                x+1,df$dtint97), origin="1970-01-01")
  x <- as.Date(ifelse(df$report97==1 & !is.na(df$dtint97n) & x>df$dtint97n &
                        (x-df$dtint97n) < 180, df$dtint97n-1, ifelse(
                          df$report97==1 & !is.na(df$dtint97) & x>df$dtint97n &
                            (x-df$dtint97n) >= 180, as.Date("1900-01-01"), x)), origin="1970-01-01")
  # 1999
  x <- as.Date(ifelse(df$report99==1 & !is.na(df$dtint99) & x>df$dtint99 &
                        (x-df$dtint99)<180, df$dtint99-1, ifelse(
                          df$report99==1 & !is.na(df$dtint99) & x>df$dtint99 &
                            (x-df$dtint99)>=180, as.Date("1900-01-01"), x)), origin="1970-01-01")

  #2001
  x <- as.Date(ifelse(df$report01==1 & !is.na(df$dtint01) & x>df$dtint01 &
                        (x-df$dtint01)<180, df$dtint01-1, ifelse(
                          df$report01==1 & !is.na(df$dtint01) & x>df$dtint01 &
                            (x-df$dtint01)>=180, as.Date("1900-01-01"), x)), origin="1970-01-01")
  #2003
  x <- as.Date(ifelse(df$report03==1 & !is.na(df$dtint03) & x>df$dtint03 &
                        (x-df$dtint03)<180, df$dtint03-1, ifelse(
                          df$report03==1 & !is.na(df$dtint03) & x>df$dtint03 &
                            (x-df$dtint03)>=180, as.Date("1900-01-01"), x)), origin="1970-01-01")

  #2005
  x <- as.Date(ifelse(df$report05==1 & !is.na(df$dtint05) & x>df$dtint05 &
                        (x-df$dtint05)<180, df$dtint05-1, ifelse(
                          df$report05==1 & !is.na(df$dtint05) & x>df$dtint05 &
                            (x-df$dtint05)>=180, as.Date("1900-01-01"), x)), origin="1970-01-01")
  #2007
  x <- as.Date(ifelse(df$report07==1 & !is.na(df$dtint07) & x>df$dtint07 &
                        (x-df$dtint07)<180, df$dtint07-1, ifelse(
                          df$report07==1 & !is.na(df$dtint07) & x>df$dtint07 &
                            (x-df$dtint07)>=180, as.Date("1900-01-01"), x)), origin="1970-01-01")
  #2009
  x <- as.Date(ifelse(df$report09==1 & !is.na(df$dtint09) & x>df$dtint09 &
                        (x-df$dtint09)<180, df$dtint09-1, ifelse(
                          df$report09==1 & !is.na(df$dtint09) & x>df$dtint09 &
                            (x-df$dtint09)>=180, as.Date("1900-01-01"), x)), origin="1970-01-01")
  #2011
  x <- as.Date(ifelse(df$report11==1 & !is.na(df$dtint11) & x>df$dtint11 &
                        (x-df$dtint11)<180, df$dtint11-1, ifelse(
                          df$report11==1 & !is.na(df$dtint11) & x>df$dtint11 &
                            (x-df$dtint11)>=180, as.Date("1900-01-01"), x)), origin="1970-01-01")
  #2013
  x <- as.Date(ifelse(df$report13==1 & !is.na(df$dtint13) & x>df$dtint13 &
                        (x-df$dtint13)<180, df$dtint13-1, ifelse(
                          df$report13==1 & !is.na(df$dtint13) & x>df$dtint13 &
                            (x-df$dtint13)>=180, as.Date("1900-01-01"), x)), origin="1970-01-01")
  #2015
  x <- as.Date(ifelse(df$report15==1 & !is.na(df$dtint15) & x>df$dtint15 &
                        (x-df$dtint15)<180, df$dtint15-1, ifelse(
                          df$report15==1 & !is.na(df$dtint15) & x>df$dtint15 &
                            (x-df$dtint15)>=180, as.Date("1900-01-01"), x)), origin="1970-01-01")
  return(x)
}
buddha2490/MargotFun documentation built on Nov. 4, 2019, 8:16 a.m.