原題目for-loop

ci_norm <- function(n=100, nci=50, nRun=3, level=0.95, pause=0.05) {
  ci <- NULL
  z0 = qnorm(1 - (1 - level)/2) #在常態分佈中,0.975的Z-score
  for ( j in 1:nRun ) { #j依序帶入1~3(nRun)
      zbar <- colMeans(replicate(nci, rnorm(n))) 
      #zbar=產生50個常態分布的隨機數(n=100,m=0,sd=1)   
      
      zl <- zbar - z0 * 1/sqrt(n); zu <- zbar + z0 * 1/sqrt(n)
      #zl=zbar - z0*0.1 ; #zu=zbar + z0*0.1
      
      #開始繪圖
      plot(1, xlim = c(0.5, nci + 0.5), ylim = c(min(zl), max(zu)), 
           type = "n", xlab = "Sample ID", ylab = "Average") 
      abline(h = 0, lty = 3) #畫出水平軸=0
      
      for( i in 1:nci ) { #依序帶入1~50(nci)
          arrows(i, zl[i], i, zu[i], length = 0.05, angle = 90, 
               code = 3,
               #1~50按照順序一一畫出,上下界分別為zl[i]、zu[i]
               
               col = ifelse(0 > zl[i] & 0 < zu[i], "gray", "red"))
        #如果0 > zl[i] 或 0 < zu[i],則使用灰色,否則使用紅色
        
          points(i, zbar[i], pch = 19, col = "gray")
          #原點一律灰色
          
      }
      
   }
}

## 最後更改代號(n、nci、nRun)代表的數字
ci_norm(n = 36, nci = 51, nRun = 2)

更改為while-loop、repeat-loop

ci_norm <- function(n=100, nci=50, nRun=3, level=0.95, pause=0.05) {
  ci <- NULL
  z0 = qnorm(1 - (1 - level)/2) #在常態分佈中,0.975的Z-score
  j <- 1
  while ( j <= nRun ) { #當j小於、等於3(nRun)的時候,一一帶入
    j <- j+1
      zbar <- colMeans(replicate(nci, rnorm(n))) 
      #zbar=產生50個常態分布的隨機數(n=100,m=0,sd=1)   
      
      zl <- zbar - z0 * 1/sqrt(n); zu <- zbar + z0 * 1/sqrt(n)
      #zl=zbar - z0*0.1 ; #zu=zbar + z0*0.1
      
      #開始繪圖
      plot(1, xlim = c(0.5, nci + 0.5), ylim = c(min(zl), max(zu)), 
           type = "n", xlab = "Sample ID", ylab = "Average") 
      abline(h = 0, lty = 3) #畫出水平軸=0
      i <- 1
      repeat{ 
        if(i > nci) break  #一一帶入,當i大於50(nci)的時候,停止
        i <- i+1
        arrows(i, zl[i], i, zu[i], length = 0.05, angle = 90, 
               code = 3,
               #1~50按照順序一一畫出,上下界分別為zl[i]、zu[i]
               
               col = ifelse(0 > zl[i] & 0 < zu[i], "gray", "red"))
        #如果0 > zl[i] 或 0 < zu[i],則使用灰色,否則使用紅色
        
          points(i, zbar[i], pch = 19, col = "gray")
          #原點一律灰色
          
      }
      
   }
}

## 最後更改原本代號(n、nci、nRun)設定的數字
ci_norm(n = 36, nci = 51, nRun = 2)