有人可以帮我解决这段代码。在一个循环中,我将p值保存在f中,然后我想将p值写入文件,但我不知道用哪个函数写入文件。我的写函数出错了。
{
f = fisher.test(x, y = NULL, hybrid = FALSE, alternative = "greater",
conf.int = TRUE, conf.level = 0.95, simulate.p.value = FALSE)
write(f, file="fisher_pvalues.txt", sep=" ", append=TRUE)
}
Error in cat(list(...), file, sep, fill, labels, append) :
argument 1 (type 'list') cannot be handled by 'cat'
答案 0 :(得分:6)
fisher.test的返回值是(如果您阅读了文档):
值:
A list with class ‘"htest"’ containing the following components:
p.value:测试的p值。
conf.int:优势比的置信区间。只出现在 2乘2和if参数'conf.int = TRUE'。
等等.R不知道如何将这样的东西写入文件。更确切地说,它不知道你希望如何将其写入文件。
如果你只想写p值,那么得到p值并写下:
write(f$p.value,file="foo.values",append=TRUE)
答案 1 :(得分:4)
f
是类'htest'
的对象,因此将其写入文件将写的不仅仅是p值。
如果您 想要将结果的书面表示保存到文件中,就像它们出现在屏幕上一样,您可以使用capture.output()
来执行此操作:
Convictions <-
matrix(c(2, 10, 15, 3),
nrow = 2,
dimnames =
list(c("Dizygotic", "Monozygotic"),
c("Convicted", "Not convicted")))
f <- fisher.test(Convictions, alternative = "less")
capture.output(f, file="fisher_pvalues.txt", append=TRUE)
更有可能的是,您只想存储p值。在这种情况下,您需要在将f
写入文件之前从 write(paste("p-value from Experiment 1:", f$p.value, "\n"),
file = "fisher_pvalues.txt", append=TRUE)
中提取它,使用如下代码:
{{1}}