boottestonemean<-function(x,theta0,b){
#
# x = sample
# theta0 is the null value of the mean
# b is the number of bootstrap resamples
#
# origtest contains the value of the test statistics
# for the original sample
# pvalue is the bootstrap p-value
# teststatall contains the b bootstrap tests
#
n<-length(x)
v<-mean(x)
z<-x-v+theta0
d<-mean(x)-theta0
counter<-0
teststatall<-rep(0,b)
for(i in 1:b){xstar<-sample(z,n,replace=T)
vstar<-mean(xstar)
#if(vstar-theta0 >= d){counter<-counter+1}# one sided test
if(abs(vstar-theta0) >= d){counter<-counter+1} #two sided
teststatall[i]<-vstar}
pvalue<-counter/b #if we do the count *2 it has the same effect as above
list(origtest=v,pvalue=pvalue,teststatall=teststatall)
#list(origtest=v,pvalue=pvalue)
}
x<-c(119.7,104.1,92.8,85.4,108.6,93.4,67.1,88.4,101.0,97.2,95.4,77.2,100.0,114.2,150.3,102.3,105.8,107.5,0.9,94.1)
R<-boottestonemean(x,90,3000)
R$pvalue
hist(R$teststatall)
T<-(mean(x)-90)/(sd(x)/20^0.5) #one sided t test
T
1-pt(T,19)