[R] Help with debugging
Sundar Dorai-Raj
sundar.dorai-raj at PDF.COM
Fri Apr 23 00:06:53 CEST 2004
Phillip Good wrote:
> Once the IF triggers in the following program, it just won't turn off:
>
> #Get p-value from permutation distribution
> N = 64
> cnt = 0
> for (i in 1:N){
> pdata = sample (data)
> statp=F1(size,pdata,gmean,samps)
> if (stat0 <= statp ){
> cnt=cnt+1
> print(i)
> print (statb)
> }
> }
> cnt/N
> #print statements are soley for debugging purposes
>
>
> #Here are the function code and test data needed to run the program:
> F1=function(size,data, gmean, samps){
> stat=0
> start=0
> end=0
> for (i in 1:samps){
> end=end+size[i]
> term=mean(data[start:end])
> stat= stat +abs(term-gmean)
> start=end+1
> }
> list(stat=stat)
> }
>
> samps = 4
> size = c(4,4,3,5)
> data = rnorm(16, 2*rbinom(16,1, .4))
> data = data +c(2,2,2,2, 0,0,0,0, 0,0,0, 0,0,0,0,0)
> gmean = mean(data)
> stat0=F1(size,data,gmean,samps)
>
stat0 is a list, so the comparison in the "if" statement should be
if(stat0$stat <= statp$stat)
Also, you should be more clear about the statement, "it just won't turn
off...". I have no idea what that means.
--sundar
N = 64
cnt = 0
for (i in 1:N){
pdata = sample (data)
statp=F1(size,pdata,gmean,samps)
if (stat0$stat <= statp$stat ){
cnt=cnt+1
print(i)
print (statp) # you had "statb", which I'm assuming was a typo
}
}
cnt/N
More information about the R-help
mailing list