R/checknames.R

#' checknames
#'
#' Check the names of different levels in the dataset to make sure they match, used in dataQC
#'
#' @param data soilcarbon data
#' @param name specific heirarchial name, ie. dataset_name
#' @param tabs the tabs that will be checked, default is all
#' @export
#'

checknames<-function(data, name, tabs){

  cat("\t", name, "...")

  level_names<-getnames(data, name)
  level_names<-level_names[intersect(names(level_names), tabs)]
  names_compared<-comparenames(level_names)
  error<-0

  if(!(F %in% unlist(names_compared))){
    cat("OK\n")
  }

      if(F %in% names_compared$higher){
        cat("\nWARNING... '", name, "' names not found at higher levels, see below:\n")
    error<-error+1
    for (i in 1:length(level_names)){
      cat("\t","\t", name, "names in", names(level_names)[i], " tab... \n")
      if (length(level_names[[i]])>0){
      for (j in 1:length(level_names[[i]])){
        level_name<-as.character(level_names[[i]][j])
        if (F %in% lapply(level_names, FUN=function(x) level_name %in% x)){
        cat("\t\t\t", level_name, "\n")
          }
        }
      } else cat("\t\t NONE \n")
    }
      }

        if(F %in% names_compared$lower){
          cat("\nNote... '", name, "' names not found at lower levels, see below:\n")
          for (i in 1:length(level_names)){
            cat("\t","\t", name, "names in", names(level_names)[i], " tab... \n")
            if (length(level_names[[i]])>0){
              for (j in 1:length(level_names[[i]])){
                level_name<-as.character(level_names[[i]][j])
                if (F %in% lapply(level_names, FUN=function(x) level_name %in% x)){
                  cat("\t\t\t", level_name, "\n")
                  }
                }
              } else cat("\t\t NONE \n")
            }
          }

  return(error)

  }
powellcenter-soilcarbon/soilcarbon documentation built on May 25, 2019, 11:24 a.m.