2016-12-02 104 views
1

我想模擬R中的pvalues。我模擬了20,000個測試統計信息,其中一些來自中央T分佈,然後是來自非中心T分佈的其餘部分。我正在循環顯示來自中央T分佈的測試統計比例的各種pi0值。向量長度錯誤

但是,當我通過這個pi0向量循環時,它的長度並不總是20,000。該代碼已附加。所有的輸出應該是20,000,儘管一些指數是19,999。爲什麼我有這個問題?

在此先感謝。下面是代碼:

## Proportion from central T 
pi0vec = c(0.05,0.10,0.20,0.30,0.40,0.50,0.60,0.70,0.80,0.85,0.90,0.95,0.975,0.99) 

## Looping through pi0 values 
for(i in 1:length(pi0vec)){ 

    ## Specifying pi0 
    pi0 = pi0vec[i] 

    ## Appropriate sample sizes 
    nH0 = 20000*pi0 
    nHa = 20000*(1-pi0) 

    ## Generating pvalues 
    null.tstats = rt(n=nH0,df = 10,0) 
    alt.tstats = rt(n=nHa,df = 10,-5) 


    ## Lengths not right?? 
    print(length(null.tstats)+length(alt.tstats)) 
} 

回答

1

出於某種原因,你需要輪:

nH0 = round(20000*pi0) 
nHa = round(20000*(1-pi0))