将p值写入R中的文件

时间:2012-01-03 16:11:50

标签: file r

有人可以帮我解决这段代码。在一个循环中,我将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'

2 个答案:

答案 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}}