Hi, I'm doing a stats project using R to work out the size of a t-test and
wilcoxon test depending on the distribution and sample size. I just can't
get it to work - I want to put my results from the function size() into an
array.At the moment I keep getting the error message:Error in res[distribution,
test, samplesize] <- results : subscript out of boundsCan anyone tell me
where I'm going wrong, please?!
size.power.test<-function(){k<-1000distributions<-c("Normal","Uniform")tests<-c("t","Wilcoxon")samplesizes<-c(10,30,40)res<-array(0,c(length(distributions),length(tests),length(samplesizes)))dimnames(res)<-list(distributions,tests,samplesizes)for(distribution
in distributions){for(test in tests){for(samplesize in samplesizes){for(i in
1:k){results<-size()res[distribution,test,samplesize]<-results}output<-size.power.testreturn(output)}}}}size<-function(k=1000,H0=0,mu.true=0,sigma.true=1,alpha=0.05,
x1=-sqrt(3),y1=sqrt(3)){distributions<-c("Normal","Uniform")tests<-c("t","Wilcoxon")samplesizes<-c(10,30,40)reject1<-numeric(k)for(distribution
in distributions){for(test in tests){for(samplesize in samplesizes){for(i in
1:k){if(distribution=="Normal"){#randomly generate data from normal
distribution with true
meandat<-rnorm(n=samplesize,mean=mu.true,sd=sigma.true)}else{#randomly
generate data from a uniform
distributiondat<-runif(samplesize,min=x1,max=y1)}if(test=="t"){#perform
a t-test on
sampleres<-t.test(dat,alternative="two.sided",mu=H0)#record if
p-value is less than alphareject1[i]<-(res$p.value<=alpha)}else{#perform a
wilcoxon-test on
sampleres<-wilcox.test(dat,alternative="two.sided",mu=H0)#record if
p-value is less than
alphareject1[i]<-(res$p.value<=alpha)}}output<-list(sum(reject1)/k)return(output)}}}}
News, Sports, Entertainment and Weather on your mobile. Text MSN to 63463 Now.
_________________________________________________________________
Welcome to the next generation of Windows Live
[[alternative HTML version deleted]]