library(BSDA)
## Loading required package: lattice
## 
## Attaching package: 'BSDA'
## The following object is masked from 'package:datasets':
## 
##     Orange
I <- 30 # number of iterations
n <- seq(10,100,10) # sample sizes 10 through 100 in steps of size 10
n
##  [1]  10  20  30  40  50  60  70  80  90 100
n[1]
## [1] 10
n[2]
## [1] 20
power.t <- rep(1,10) #power of t test from the 10 different sizes, 
#use vector (1,1,....1) to denote the default
power.w <- rep(1,10) # power of wilcoxon
power.s <- rep(1,10)  # power of sign test
power.t
##  [1] 1 1 1 1 1 1 1 1 1 1
for(j in 1:10) {
  decision.t <- 1:I
  decision.w <- 1:I
  decision.s <- 1:I

  for(i in 1:I) {
    x <- rnorm(n[j],1,3) 
    pvalue.t <- t.test(x)$p.value
    pvalue.w <- wilcox.test(x)$p.value
    pvalue.s <- SIGN.test(x)$p.value
    decision.t[i] <- (pvalue.t < .05) # TRUE=correct decision, coded by 1, FALSE = wrong decision, coded by 0
    decision.w[i] <- (pvalue.w < .05) #1=correct decision
    decision.s[i] <- (pvalue.s < .05)
  }

  power.t[j] <- mean(decision.t) # proportion of correct decisions
  power.w[j] <- mean(decision.w)
  power.s[j] <- mean(decision.s)
}

power.t
##  [1] 0.1000000 0.3333333 0.4000000 0.3666667 0.6666667 0.7333333 0.7000000
##  [8] 0.8666667 0.9333333 0.9666667
power.w
##  [1] 0.1000000 0.3000000 0.4333333 0.3333333 0.6333333 0.7333333 0.7000000
##  [8] 0.8000000 0.9000000 0.9666667
power.s
##  [1] 0.03333333 0.16666667 0.36666667 0.30000000 0.46666667 0.46666667
##  [7] 0.46666667 0.63333333 0.63333333 0.73333333
plot(power.t[j],type="n",xlim=c(0,100),ylim=c(0,1),main="",xlab="Sample size", ylab = "Power", cex.lab=1.3,cex.axis=1.3)
points(n,power.t,type="l",lwd=2,col="black")
points(n,power.w,type="l",lwd=2,lty=2,col="red")
points(n,power.s,type="l",lwd=2,lty=3,col="orange")
legend(0,1,legend=c("t-test","Wilcoxon","Sign test"),col=c("black","red","orange"),lty=c(1,2,3),cex=2,bty="n",lwd=c(2,2,2))