0

ks.test 返回一个带有“htests”类的列表,但我找不到将这些具有正确类的列表存储到向量中的方法。我正在使用的代码是:

random.sim <- read.delim("ABC_searStatsForModelFit_model0_RandomValidation.txt")
labels <- names(random.sim)
par(mfrow=c(4,3), oma=c(0.5, 0.75, 2, 0.25), mar=c(4, 4, 4, 4))
pdf("posterior_bias_random.pdf",width=9,height=13)
ks = vector("list",12)
i=1
for (n in c(6,11,16,21,26,31,36,41,46,51,56,61)) {
  ks[i]<-ks.test(random.sim[,n], "qunif")
  i=i+1
  hist(random.sim[,n], main="", xlab=labels[n], ylab="Frequency")
  add_label(0.4, 0.07, paste("K-S test = ", ks[i], sep=""))
     }
title("2CAB+CJAfg", outer=T)
dev.off()

我知道我做错了什么,因为每个 ks[i] 没有类 htest

请注意,“add_label”是我从其他地方借来的一个小函数(对不起,我不记得在哪里,但可能来自 Stackoverflow)来对齐图中的标签

add_label <- function(xfrac, yfrac, label, pos = 4, ...) {
  u <- par("usr")
  x <- u[1] + xfrac * (u[2] - u[1])
  y <- u[4] - yfrac * (u[4] - u[3])
  text(x, y, label, pos = pos, ...)
}

谢谢你的帮助。巴勃罗

我可以通过动态标记来解决情节部分

pdf("posterior_bias_random.pdf",width=9,height=13)
par(mfrow=c(4,3), oma=c(0.5, 0.75, 2, 0.25), mar=c(4, 4, 4, 4))
for (n in c(6,11,16,21,26,31,36,41,46,51,56,61)) {
  ks<-ks.test(random.sim[,n], "qunif")
  hist(random.sim[,n], main="", xlab=labels[n], ylab="Frequency")
  add_label(0.4, 0.07, paste("K-S test = ", signif(ks$statistic, digits=3), sep=""))
}
  title("2CAB+CJAfg", outer=T)
dev.off()

但是,我仍然想知道如何存储这样的列表。我已阅读 Q:“如何将 htest 列表存储到矩阵中”,但无法使用解决方案。Josh 只保留最后一个测试列表,而 Bruno 自己的答案没有说明如何存储非数字信息。
无论如何都要维护这个伟大的论坛。可能是我解决 R 代码问题的首选来源。
巴勃罗

4

0 回答 0