R/6.1_Plackett_Burman_designs_Aux.R

Defines functions .pbDesign

#############################################################################################
####################### DISEÑO PLACKETT BURMAN - AUXILIARES (.r) ############################
#############################################################################################

# .pbDesign ----
.pbDesign <- function(n){
  k=n-1
  if(k==27)
  {
    X=matrix(c(+1, -1, +1, +1, +1, +1, -1, -1, -1,
               +1, +1, -1, +1, +1, +1, -1, -1, -1,
               -1, +1, +1, +1, +1, +1, -1, -1, -1,
               -1, -1, -1, +1, -1, +1, +1, +1, +1,
               -1, -1, -1, +1, +1, -1, +1, +1, +1,
               -1, -1, -1, -1, +1, +1, +1, +1, +1,
               +1, +1, +1, -1, -1, -1, +1, -1, +1,
               +1, +1, +1, -1, -1, -1, +1, +1, -1,
               +1, +1, +1, -1, -1, -1, -1, +1, +1),nrow=9,ncol=9,byrow=TRUE)
    Y=matrix(c(-1, +1, -1, -1, -1, +1, -1, -1, +1,
               -1, -1, +1, +1, -1, -1, +1, -1, -1,
               +1, -1, -1, -1, +1, -1, -1, +1, -1,
               -1, -1, +1, -1, +1, -1, -1, -1, -1,
               +1, -1, -1, -1, -1, +1, +1, -1, -1,
               -1, +1, -1, +1, -1, -1, -1, +1, -1,
               -1, -1, +1, -1, -1, +1, -1, +1, -1,
               +1, -1, -1, +1, -1, -1, -1, -1, +1,
               -1, +1, -1, -1, +1, -1, +1, -1, -1),nrow=9,ncol=9,byrow=TRUE)
    Z=matrix(c(+1, +1, -1, +1, -1, +1, +1, -1, +1,
               -1, +1, +1, +1, +1, -1, +1, +1, -1,
               +1, -1, +1, -1, +1, +1, -1, +1, +1,
               +1, -1, +1, +1, +1, -1, +1, -1, +1,
               +1, +1, -1, -1, +1, +1, +1, +1, -1,
               -1, +1, +1, +1, -1, +1, -1, +1, +1,
               +1, -1, +1, +1, -1, +1, +1, +1, -1,
               +1, +1, -1, +1, +1, -1, -1, +1, +1,
               -1, +1, +1, -1, +1, +1, +1, -1, +1),nrow=9,ncol=9,byrow=TRUE)
    design=data.frame(rbind(cbind(X,Y,Z),cbind(X,Y,Z),cbind(X,Y,Z),rep(-1,27)))
  }
  else
  {
    if(k<3)
      stop("k needs to be grater than three!")
    if(k==3)
      firstRow=c(+1, -1, +1)[1:k]
    if(k>3 && k<=7)
      firstRow=c(+1, +1, +1, -1, +1, -1, -1)[1:k]
    if(k>=8 && k<=11)
      firstRow=c(+1, +1, -1, +1, +1, +1, -1, -1, -1, +1, -1)[1:k]
    if(k>=12 && k<=15)
      firstRow=c(+1, +1, +1, +1, -1, +1, -1, +1, +1, -1, -1, +1, -1, -1, -1)[1:k]
    if(k>=16 && k<=19)
      firstRow=c(+1, +1, -1, -1, +1, +1, +1, +1, -1, +1, -1, +1, -1, -1, -1, -1, +1, +1, -1)[1:k]
    if(k>=20 && k<=23)
      firstRow=c(+1, +1, +1, +1, +1, -1, +1, -1, +1, +1, -1, -1, +1, -1, -1, +1, -1, +1, -1, -1, -1, -1)[1:k]
    if(k>=24 && k<=26)
      firstRow=c(-1, -1, -1, -1, +1, -1, +1, -1, +1, +1, +1, -1, +1, +1, -1, -1, -1, +1, +1, +1, +1, +1, -1, -1, +1, +1, -1, +1, -1, -1, +1)[1:k]
    if(k==27)
      print("insert exception here!")
    if(k>=29 && k<=31)
      firstRow=c(-1, -1, -1, -1, +1, -1, +1, -1, +1, +1, +1, -1, +1, +1, -1, -1, -1, +1, +1, +1, +1, +1, -1, -1, +1, +1, -1, +1, -1, -1, +1)[1:k]
    if(k>=32 && k<=35)
      firstRow=c(-1, +1, -1, +1, +1, +1, -1, -1, -1, +1, +1, +1, +1, +1, -1, +1, +1, +1, -1, -1, +1, -1, -1, -1, -1, +1, -1, +1, -1, +1, +1, -1, -1, +1, -1)[1:k]
    if(k>=36 && k<=39)
      firstRow=c(+1, +1, -1, -1, +1, +1, +1, +1, -1, +1, -1, +1, -1, -1, -1, -1, +1, +1, -1, -1, +1, +1, -1, -1, +1, +1, +1, +1, -1, +1, -1, +1, -1, -1, -1, -1, +1, +1, -1)[1:k]
    if(k>=40 && k<=43)
      firstRow=c(+1, +1, -1, -1, +1, -1, +1, -1, -1, +1, +1, +1, -1, +1, +1, +1, +1, +1, -1, -1, -1, +1, -1, +1, +1, +1, -1, -1, -1, -1, -1, +1, -1, -1, -1, +1, +1, -1, +1, -1, +1, +1, -1)[1:k]
    if(k>=44 && k<=47)
      firstRow=c(+1, +1, +1, +1, +1, -1, +1, +1, +1, +1, -1, -1, +1, -1, +1, -1, +1, +1, +1, -1, -1, +1, -1, -1, +1, +1, -1, +1, +1, -1, -1, -1, +1, -1, +1, -1, +1, +1, -1, -1, -1, -1, +1, -1, -1, -1, -1)[1:k]
    if(k>=48 && k<=59)
      firstRow=c(+1, +1, -1, +1, +1, +1, -1, +1, -1, +1, -1, -1, +1, -1, -1, +1, +1, +1, -1, +1, +1, +1, +1, -1, -1, +1, +1, +1, +1, +1, -1, -1, -1, -1, -1, +1, +1, -1, -1, -1, -1, +1, -1, -1, -1, +1, +1, -1, +1, +1, -1, +1, -1, +1, -1, -1, -1, +1, -1)[1:k]

    design=matrix(NA,nrow=k+1,ncol=k)
    design[1,]=firstRow
    nextRow=firstRow

    for(i in 2:k)
    {
      nextRow=nextRow[c(k,1:k-1)]
      design[i,]=nextRow
    }
    lastRow=rep(-1,k)
    design[k+1,]=lastRow
    design=data.frame(design)
  }
  return(design)
}

Try the r6qualitytools package in your browser

Any scripts or data that you put into this service are public.

r6qualitytools documentation built on Oct. 4, 2024, 1:09 a.m.