From 2318804ea0bd9e4fe7301188e0a83d9887c3ee7e Mon Sep 17 00:00:00 2001 From: hollorol Date: Sun, 17 Feb 2019 13:40:21 +0100 Subject: [PATCH] string handling --- RBBGCMuso/R/assistantFunctions.R | 21 ++++++++++++++++++--- RBBGCMuso/R/plotMuso.R | 11 ++++++++--- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/RBBGCMuso/R/assistantFunctions.R b/RBBGCMuso/R/assistantFunctions.R index 04a74a8..150df05 100644 --- a/RBBGCMuso/R/assistantFunctions.R +++ b/RBBGCMuso/R/assistantFunctions.R @@ -147,7 +147,7 @@ readValuesFromFile <- function(epc, linums){ #' @export readMeasuredMuso <- function(inFile, - naString = getOption("datatable.na.strings","NA"), sep = ",", + naString = NULL, sep = ",", leapYearHandling = TRUE, convert.var = NULL, convert.scalar = 1, @@ -157,9 +157,24 @@ readMeasuredMuso <- function(inFile, filterVal = 1, selVar = NULL ){ + + if(!is.null(naString)){ + if(is.numeric(naString)){ + baseData <- fread(file = inFile, sep=sep) + baseData <- as.data.frame(baseData) + baseData[baseData[,selVar] == naString,selVar] <- NA + } else { + baseData <- fread(file = inFile, sep=sep, naString = naString) + baseData <- as.data.frame(baseData) + } + + + } else { + + baseData <- fread(file = inFile, sep=sep) + baseData <- as.data.frame(baseData) + } - baseData <- fread(file = inFile, na.strings = as.character(naString), sep=sep) - baseData <- as.data.frame(baseData) if(!is.null(filterCol)){ filterVar<- colnames(baseData)[filterCol] baseData[(baseData[,filterVar] == filterVal),selVar] <- NA diff --git a/RBBGCMuso/R/plotMuso.R b/RBBGCMuso/R/plotMuso.R index cee07c8..dbb392b 100644 --- a/RBBGCMuso/R/plotMuso.R +++ b/RBBGCMuso/R/plotMuso.R @@ -260,12 +260,17 @@ plotMusoWithData <- function(mdata, plotName=NULL, modellSettings = settings, startDate = startDate, endDate = endDate, leapYear = FALSE),envir=environment()) - - + + ## measuredData is created baseData <- calibMuso(settings = settings, silent = silent, prettyOut = TRUE)[modIndex,] baseData[,1] <- as.Date(baseData[,1],format = "%d.%m.%Y") - selVarName <- colnames(baseData)[selVar] + selVarName <- colnames(baseData)[selVar] + if(colnames(baseData) != unique(colnames(baseData))){ + notUnique <- setdiff((unlist(settings$dailyVarCodes)),unique(unlist(settings$dailyVarCodes))) + stop(paste0("Error: daily output variable list in the ini file must contain unique numbers. Check your ini files! Not unique codes: ",notUnique)) + } + p <- baseData %>% ggplot(aes_string("date",selVarName)) + geom_line(colour=colour[1]) +