R/import-1-importrawdf_f.R

Defines functions importrawdf_f

Documented in importrawdf_f

#' importrawdf_f
#'
#' Import raw df from a specified directory with ^201*.csv M+ Data.
#' Imports: library1(c("lubridate", "plyr", "function0")
#' Return df
#' @param data_dir directory of M+ Data
#' @param startdate_ymd date of first day to import
#' @param enddate_ymd date of last day to import
#' @keywords import raw df
#' @export
#' @examples
#' importrawdf_f(data.dir = "C:/Users/jy/Desktop/tempmplus", startdate_ymd = "20150101", enddate_ymd = "20170808")
importrawdf_f <- function(data_dir, startdate_ymd = "20150101", enddate_ymd = Sys.Date(), oneonly = F){
      startdate <- lubridate::ymd(startdate_ymd)
      if(oneonly){
            enddate <- startdate
      }else{
            enddate <- lubridate::ymd(enddate_ymd)
      }
      
      data_dir <- formatdir_f(data_dir) #Add "/" to the end of the directory
      flist <- list.files(path = data_dir, pattern = "^20.*.csv")
      
      N <- length(flist); 
      
      if(N == 0){
            cat( paste0("No ^20.*.csv exist in '", data_dir ,"'!") )
            return(NULL)
      }
      
      
      flist_date <- sapply(flist, FUN = function(x){
            return(   strsplit(x, split = "\\.")[[1]][1]   )
      })
      flist_date <- lubridate::ymd(flist_date)
      u1 <- flist_date >= startdate & flist_date <= enddate
      
      if(sum(u1) == 0){
            cat("No csv files within date range OR no update!\n\n")
            # Sys.sleep()
            return(NULL)
      }
      
      req_date <- flist_date[u1]
      req_date2 <- paste0(gsub(pattern = "-", "", req_date), ".csv")
      L <- 1:length(req_date)
      
      df_list <- lapply(L, FUN = function(j){
                  df2 <- read.csv(paste0(data_dir, req_date2[j]), stringsAsFactors = F)
                  df2[,"date"] <- req_date[j]
                  return(df2)
            }) #return list of df by date

      return(plyr::rbind.fill(df_list)) ###dependent on plyr (LOAD plyr BEFORE dplyr)
}
junyitt/tfunction documentation built on May 4, 2019, 4:23 p.m.