#' Sum columns in data frame df where some of the entries might be NA #' #' @param df data frame #' @param var1 first column #' @param var2 second column #' @param outVar which variable to store sum into #' @param valIfNA which value to use for NA #' #' @return updated data frame #' @export #' ## examples df<-sumWithNA(df,'lesionmtv41','metastasesmtv41','totalmtv41',0) sumWithNA<-function(df,var1='lesionmtv41',var2='metastasesmtv41',outVar='totalmtv41',valIfNA=0){ v1=df[,var1] v2=df[,var2] v1[is.na(v1)]=valIfNA v2[is.na(v2)]=valIfNA df[,outVar]=v1+v2 df } #' Map NA to value #' #' @param df data frame #' @param var variable to modify #' @param valIfNA change from NA to this value #' #' @return updated data frame #' #' @export mapNA<-function(df,var,valIfNA=0){ df[is.na(df[,var]),var]=valIfNA df } #' Map variable time OS status to status at cutoff #' #' @param df data frame #' @param cutoff time instance where OS is evaluated, same units as timeVar #' @param timeVar name of column where times of status evaluation are recorded (from treatment start) #' @param osVar name of column with status at evaluation (1-alive/progress free, 2-censored, 3-dead/w/disease) #' @param targetVar name of target variable holding status at cutoff (0-dead, 1-alive, 2-censored) #' #' @return updated data frame with targetVar #' @export selectValid<-function(df,cutoff=2,timeVar='years_to_event',osVar='st_osMAP',targetVar='osAtCutoff'){ #if alive and ytoevent>c -> alive #if censored and ytoe>c -> alive #if dod and ytovent>c -> alive df[,targetVar]=1 #if alive and ytoe censored df[(df[,timeVar] censored df[df[,timeVar] dead df[df[,timeVar]