R/demCont.R

Defines functions demCont

Documented in demCont

demCont <- function(x,y,z,k){
     if(length(ls(pattern="demContdf",pos=".GlobalEnv"))==1){rm(list=ls(pattern="demContdf",pos=".GlobalEnv"),pos=".GlobalEnv")}
     for(i in x){
         temp <- as.data.frame(cbind(Demographics=i,
        formatC(cbind(Mean=mean(y[,i],na.rm=TRUE),SD=sd(y[,i],na.rm=TRUE),Min=min(y[,i],na.rm=TRUE),
              Max=max(y[,i],na.rm=TRUE)),digits=z,format="f")),stringsAsFactors = FALSE)
         if(!missing(k)){
           if(length(unique(y[,k]))>1){
             for(g in 1:length(unique(y[,k]))){
                 temp<-as.data.frame(cbind(temp,as.data.frame(formatC(cbind(Mean=mean(y[which(y[,k]==unique(y[,k])[g]),i],na.rm=TRUE),
                                                SD=sd(y[which(y[,k]==unique(y[,k])[g]),i],na.rm=TRUE),
                                                Min=min(y[which(y[,k]==unique(y[,k])[g]),i],na.rm=TRUE),
                                                Max=max(y[which(y[,k]==unique(y[,k])[g]),i],na.rm=TRUE)),
                                                digits=z,format="f"),stringsAsFactors=FALSE)),stringsAsFactors=FALSE)
             }}}
         assign(paste0("demCont",i),temp,envir = .GlobalEnv)
     }
  temp<-as.data.frame(do.call(rbind,
                              lapply(sort(names(which(unlist(eapply(.GlobalEnv,is.data.frame)))))[grep("demCont",
                                                                                                       sort(names(which(unlist(eapply(.GlobalEnv,is.data.frame))))))],get)),
                      stringsAsFactors = FALSE)
  temp<-rbind(temp,colnames(temp))
  temp<-temp[c(nrow(temp),1:(nrow(temp)-1)),]
  coln<-c("","Total",rep("",3))
  colnames(temp)[1:5]<-coln
  if(ncol(temp)>5){
    for(g in 1:length(unique(y[,k]))){
      coln<-c(coln,c(unique(y[,k])[g],rep("",3)))
    }
    colnames(temp)<-coln
  }
assign(paste0("demContdf"),temp,envir = .GlobalEnv)
     rm(list=ls(pattern="demCont",pos=".GlobalEnv")[which(!ls(pattern="demCont",pos=".GlobalEnv")
                                                    %in% c("demCont","demContdf"))],pos=".GlobalEnv")
     write.csv(demContdf,paste0("demContdf",gsub("[[:punct:]]| ","",Sys.time()),".csv"),row.names = FALSE)
}
shetleranna/demTable documentation built on July 11, 2020, 2:38 a.m.