R/Normal_Distr_Test_qqnorm.R

Defines functions Normal_Distr_Test_qqnorm

Documented in Normal_Distr_Test_qqnorm

#' To plot qq plot
#'
#' @param x your data
#'
#' @return several plots
#' @examples
#' x<-1:100
#' Normal_Distr_Test_qqnorm(x)
#' @export
Normal_Distr_Test_qqnorm<-function(x){
  x=na.omit(x)
  addd=0
  if (length(x) >2){
    xt1=x
    addd=addd+1
    xt2=suppressWarnings(log(x))
    if ((!(NaN %in% xt2)) & (!(-Inf %in% xt2))& (!(Inf %in% xt2))){addd=addd+1}
    xt3=suppressWarnings(x^2)
    if ((!(NaN %in% xt3)) & (!(-Inf %in% xt3))& (!(Inf %in% xt3))){addd=addd+1}
    xt4=suppressWarnings(x^3)
    if ((!(NaN %in% xt4)) & (!(-Inf %in% xt4))& (!(Inf %in% xt4))){addd=addd+1}
    xt5=suppressWarnings(sqrt(x))
    if ((!(NaN %in% xt5)) & (!(-Inf %in% xt5))& (!(Inf %in% xt5))){addd=addd+1}
    xt6=suppressWarnings(1/x)
    if ((!(NaN %in% xt6)) & (!(-Inf %in% xt6))& (!(Inf %in% xt6))){addd=addd+1}
    xt7=suppressWarnings(1/(x^2))
    if ((!(NaN %in% xt7)) & (!(-Inf %in% xt7))& (!(Inf %in% xt7))){addd=addd+1}
    xt8=suppressWarnings(1/(x^3))
    if ((!(NaN %in% xt8)) & (!(-Inf %in% xt8))& (!(Inf %in% xt8))){addd=addd+1}
    xt9=suppressWarnings(1/sqrt(x))
    if ((!(NaN %in% xt9)) & (!(-Inf %in% xt9))& (!(Inf %in% xt9))){addd=addd+1}
    xt10=suppressWarnings(asin(sqrt(x)))
    if ((!(NaN %in% xt10)) & (!(-Inf %in% xt10))& (!(Inf %in% xt10))){addd=addd+1}
    if (addd==1){
      qqnorm(xt1,main ="identity")
      qqline(xt1)
    }else if((addd>=2) & (addd<=3)){
      par(mfrow=c(1,3))
      qqnorm(xt1,main ="identity")
      qqline(xt1)
      if ((!(NaN %in% xt2)) &(!(-Inf %in% xt2))& (!(Inf %in% xt2))){
        qqnorm(xt2,main="qq:log(x)")
        qqline(xt2)
      }
      if ((!(NaN %in% xt3)) & (!(-Inf %in% xt3))& (!(Inf %in% xt3))){
        qqnorm(xt3,main="qq:x^2")
        qqline(xt3)
      }
      if ((!(NaN %in% xt4)) &  (!(-Inf %in% xt4))& (!(Inf %in% xt4))){
        qqnorm(xt4,main="qq:x^3")
        qqline(xt4)
      }
      if ((!(NaN %in% xt5)) & (!(-Inf %in% xt5))& (!(Inf %in% xt5))){
        qqnorm(xt5,main="qq:sqrt(x)")
        qqline(xt5)
      }
      if ((!(NaN %in% xt6)) & (!(-Inf %in% xt6))& (!(Inf %in% xt6))){
        qqnorm(xt6,main="qq:1/x")
        qqline(xt6)
      }
      if ((!(NaN %in% xt7)) & (!(-Inf %in% xt7))& (!(Inf %in% xt7))){
        qqnorm(xt7,main="qq:1/(x^2)")
        qqline(xt7)
      }
      if ((!(NaN %in% xt8)) & (!(-Inf %in% xt8))& (!(Inf %in% xt8))){
        qqnorm(xt8,main="qq:1/(x^3)")
        qqline(xt8)
      }
      if ((!(NaN %in% xt9)) & (!(-Inf %in% xt9))& (!(Inf %in% xt9))){
        qqnorm(xt9,main="qq:1/sqrt(x)")
        qqline(xt9)
      }
      if ((!(NaN %in% xt10)) & (!(-Inf %in% xt10))& (!(Inf %in% xt10))){
        qqnorm(xt10,main="qq:asin(sqrt(x))")
        qqline(xt10)
      }
    }else if((addd>=4) & (addd<=6)){
      par(mfrow=c(2,3))
      qqnorm(xt1,main ="identity")
      qqline(xt1)
      if ((!(NaN %in% xt2)) &(!(-Inf %in% xt2))& (!(Inf %in% xt2))){
        qqnorm(xt2,main="qq:log(x)")
        qqline(xt2)
      }
      if ((!(NaN %in% xt3)) & (!(-Inf %in% xt3))& (!(Inf %in% xt3))){
        qqnorm(xt3,main="qq:x^2")
        qqline(xt3)
      }
      if ((!(NaN %in% xt4)) &  (!(-Inf %in% xt4))& (!(Inf %in% xt4))){
        qqnorm(xt4,main="qq:x^3")
        qqline(xt4)
      }
      if ((!(NaN %in% xt5)) & (!(-Inf %in% xt5))& (!(Inf %in% xt5))){
        qqnorm(xt5,main="qq:sqrt(x)")
        qqline(xt5)
      }
      if ((!(NaN %in% xt6)) & (!(-Inf %in% xt6))& (!(Inf %in% xt6))){
        qqnorm(xt6,main="qq:1/x")
        qqline(xt6)
      }
      if ((!(NaN %in% xt7)) & (!(-Inf %in% xt7))& (!(Inf %in% xt7))){
        qqnorm(xt7,main="qq:1/(x^2)")
        qqline(xt7)
      }
      if ((!(NaN %in% xt8)) & (!(-Inf %in% xt8))& (!(Inf %in% xt8))){
        qqnorm(xt8,main="qq:1/(x^3)")
        qqline(xt8)
      }
      if ((!(NaN %in% xt9)) & (!(-Inf %in% xt9))& (!(Inf %in% xt9))){
        qqnorm(xt9,main="qq:1/sqrt(x)")
        qqline(xt9)
      }
      if ((!(NaN %in% xt10)) & (!(-Inf %in% xt10))& (!(Inf %in% xt10))){
        qqnorm(xt10,main="qq:asin(sqrt(x))")
        qqline(xt10)
      }
    }else if((addd>=7) & (addd<=9)){
      par(mfrow=c(3,3))
      qqnorm(xt1,main ="identity")
      qqline(xt1)
      if ((!(NaN %in% xt2)) &(!(-Inf %in% xt2))& (!(Inf %in% xt2))){
        qqnorm(xt2,main="qq:log(x)")
        qqline(xt2)
      }
      if ((!(NaN %in% xt3)) & (!(-Inf %in% xt3))& (!(Inf %in% xt3))){
        qqnorm(xt3,main="qq:x^2")
        qqline(xt3)
      }
      if ((!(NaN %in% xt4)) &  (!(-Inf %in% xt4))& (!(Inf %in% xt4))){
        qqnorm(xt4,main="qq:x^3")
        qqline(xt4)
      }
      if ((!(NaN %in% xt5)) & (!(-Inf %in% xt5))& (!(Inf %in% xt5))){
        qqnorm(xt5,main="qq:sqrt(x)")
        qqline(xt5)
      }
      if ((!(NaN %in% xt6)) & (!(-Inf %in% xt6))& (!(Inf %in% xt6))){
        qqnorm(xt6,main="qq:1/x")
        qqline(xt6)
      }
      if ((!(NaN %in% xt7)) & (!(-Inf %in% xt7))& (!(Inf %in% xt7))){
        qqnorm(xt7,main="qq:1/(x^2)")
        qqline(xt7)
      }
      if ((!(NaN %in% xt8)) & (!(-Inf %in% xt8))& (!(Inf %in% xt8))){
        qqnorm(xt8,main="qq:1/(x^3)")
        qqline(xt8)
      }
      if ((!(NaN %in% xt9)) & (!(-Inf %in% xt9))& (!(Inf %in% xt9))){
        qqnorm(xt9,main="qq:1/sqrt(x)")
        qqline(xt9)
      }
      if ((!(NaN %in% xt10)) & (!(-Inf %in% xt10))& (!(Inf %in% xt10))){
        qqnorm(xt10,main="qq:asin(sqrt(x))")
        qqline(xt10)
      }
    }else if(addd==10){
      par(mfrow=c(4,3))
      qqnorm(xt1,main ="identity")
      qqline(xt1)
      if ((!(NaN %in% xt2)) &(!(-Inf %in% xt2))& (!(Inf %in% xt2))){
        qqnorm(xt2,main="qq:log(x)")
        qqline(xt2)
      }
      if ((!(NaN %in% xt3)) & (!(-Inf %in% xt3))& (!(Inf %in% xt3))){
        qqnorm(xt3,main="qq:x^2")
        qqline(xt3)
      }
      if ((!(NaN %in% xt4)) &  (!(-Inf %in% xt4))& (!(Inf %in% xt4))){
        qqnorm(xt4,main="qq:x^3")
        qqline(xt4)
      }
      if ((!(NaN %in% xt5)) & (!(-Inf %in% xt5))& (!(Inf %in% xt5))){
        qqnorm(xt5,main="qq:sqrt(x)")
        qqline(xt5)
      }
      if ((!(NaN %in% xt6)) & (!(-Inf %in% xt6))& (!(Inf %in% xt6))){
        qqnorm(xt6,main="qq:1/x")
        qqline(xt6)
      }
      if ((!(NaN %in% xt7)) & (!(-Inf %in% xt7))& (!(Inf %in% xt7))){
        qqnorm(xt7,main="qq:1/(x^2)")
        qqline(xt7)
      }
      if ((!(NaN %in% xt8)) & (!(-Inf %in% xt8))& (!(Inf %in% xt8))){
        qqnorm(xt8,main="qq:1/(x^3)")
        qqline(xt8)
      }
      if ((!(NaN %in% xt9)) & (!(-Inf %in% xt9))& (!(Inf %in% xt9))){
        qqnorm(xt9,main="qq:1/sqrt(x)")
        qqline(xt9)
      }
      if ((!(NaN %in% xt10)) & (!(-Inf %in% xt10))& (!(Inf %in% xt10))){
        qqnorm(xt10,main="qq:asin(sqrt(x))")
        qqline(xt10)
      }
    }
  }else{
    stop("Sample size is less than 2")
  }
}
yikeshu0611/NormalDistrTest documentation built on May 24, 2019, 8:55 a.m.