R/kosim.R

#' Reads the .klzc structured time series data output generated by 'KOSIM' and 
#' creates an xts-object.
#'
#' @title Read time series data from .klzc file format
#' @param file The file to be read
#' @return An xts-object.
#' @rdname read_kosim
#' @export
#' @seealso \code{\link[xts]{xts}}.
read_kosim <- function(file) {
  
  conn <- file(file, open = "r")
  
  data <- readLines(con = conn)
  
  header_line <- grep("HEADER_V", data, ignore.case = T)
  
  close(conn)
  
  m <- utils::read.csv(file, skip = header_line - 1)
  
  timedata <- as.POSIXct(m[,2], tz = "GMT", format = "%d.%m.%Y %H:%M:%S")
  
  xts.list <- list()
  
  for (i in seq_len(ncol(m) - 2)) {
    
    xts.list[[i]] <- xts::xts(x = m[, i + 2], order.by = timedata)
    
  }
  
  names(xts.list) <- colnames(m)[-(1:2)]
  
  return(xts.list)
  
}
dleutnant/tsconvert documentation built on May 15, 2019, 9:17 a.m.