【问题标题】:Error in Vector Length向量长度错误
【发布时间】:2016-12-02 17:01:10
【问题描述】:

我正在尝试在 R 中模拟 pvalue。我正在模拟 20,000 个测试统计数据,其中一些来自中心 T 分布,然后来自非中心 T 分布。我正在遍历各种 pi0 值,这些值表明了来自中心 T 分布的测试统计量的比例。

但是,当我遍历这个 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))
}

【问题讨论】:

    标签: r vector simulation p-value


    【解决方案1】:

    由于某种原因你需要四舍五入:

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

    【讨论】: