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代码问题的首选来源
巴勃罗