R/Normal_Distr_Test.R

Defines functions Normal_Distr_Test

Documented in Normal_Distr_Test

#' To get proper Normal Dstribution test and some transfromations
#'
#' @param x the data to be tested
#' @param decimal the number of decimals with defalut 3
#'
#' @return test resultes
#' @export
#'
#' @examples Normal_Distr_Test(x)
Normal_Distr_Test<-function(x,decimal=3){
  x=na.omit(x)
  if (length(x) >2){
    cat("sample size:",length(x),'\n')
    if ((length(x)>4) &
        (length(x)<=5000)){
      message("SW:Shapiro-Wilk test(sample size:3~5000)\nKS:Kolmogorov-Smirnov test(using lillie test;sample size:5~5000)\n***:p.value<0.001\n** :p.value<0.01 \n*  :p.value<=0.05 \n.  :p.value>0.05")
    }else if((length(x)>=3) &
             (length(x)<=4)){
      message("SW:Shapiro-Wilk test(sample size:3~5000)\n***:p.value<0.001\n** :p.value<0.01 \n*  :p.value<=0.05 \n.  :p.value>0.05")
    }else if(length(x)>5000){
      message("KS:Kolmogorov-Smirnov test(sample size:5~5000)\n***:p.value<0.001\n** :p.value<0.01 \n*  :p.value<=0.05 \n.  :p.value>0.05")
    }
    if (timeDate::skewness(x)>=0){
      Normal_Test_unit(x=x,decimal = decimal)
    }else{
      # if skewness of x is minus 0
      ResultsX=Normal_Test_unit(x=x,decimal = decimal)
      print(ResultsX)
      x_new=max(x)+1-x
      cat("\n")
      cat("The skewness of x itself is",round(timeDate::skewness(x)[1],decimal));message(" <0")
      cat("We transform x as formula:");message("x_new=max(x)+1-x")
      message("The distribution of x_new was tested as follows:")
      ResultsX_new=Normal_Test_unit(x=x_new,decimal = decimal)
      return(ResultsX_new)
    }
  }else{
    stop("Sample size is less 2.")
  }
}
yikeshu0611/NormalDistrTest documentation built on May 24, 2019, 8:55 a.m.