1

我创建了一系列多峰分布来测试 Hartigan dip 测试对单峰的有效性。这些分布每个都有 2000 个观察值,并使用一个或多个 rnorm 函数创建。

此代码的目的概述如下。

  1. 计算要存储在“统计”变量中的每个分布的倾角统计

  2. 将 p 值提取到“dipstatistic”变量中并存储起来以备后用

  3. 在每个分布都经过此计算后引用此变量,以便在以后进行评估

我相信我在这里遇到的问题是指示在循环之外生成的变量。有人对如何纠正这个问题有任何建议吗?

x1 <- rnorm(2000,4,.5)

x2 <- c(rnorm(1000,0,1),rnorm(1000,4,1)) 

x3 <- c(rnorm(667,0,1),rnorm(667,4,1),rnorm(666,8,1))

x4 <- c(rnorm(500,0,1),rnorm(500,4,1),rnorm(500,8,1),rnorm(500,12,1))

dip.test(x1, simulate.p.value = FALSE, B = 2000)
dip.test(x2, simulate.p.value = FALSE, B = 2000)
dip.test(x3, simulate.p.value = FALSE, B = 2000)
dip.test(x4, simulate.p.value = FALSE, B = 2000)

y=4

dipstatistic <- rep(0,y)

ID <- 1:y
for (i in 1:y) {
  statistic <- dip.test("need to find way to identify variables" , simulate.p.value = FALSE, B = 2000)
  dipstatistic[i] <- statistic$p.value
}

dipstatistic
4

1 回答 1

0

如果您将所有变量加入列表中,则可以在此处使用 sapply。

dipstatistic <- sapply(list(x1,x2,x3,x4), function(x) {
    dip.test(x , simulate.p.value = FALSE, B = 2000)$p.value
})
于 2014-11-13T03:53:32.917 回答