запись p-значений в файл в R - PullRequest
4 голосов
/ 03 января 2012

Может кто-нибудь помочь мне с этим куском кода. В цикле я сохраняю 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 ]

6 голосов
/ 03 января 2012

Возвращаемое значение из fisher.test: (если вы читаете документы):

Значение:

 A list with class ‘"htest"’ containing the following components:

p.value: значение p теста.

conf.int: доверительный интервал для отношения шансов. Только присутствует в регистр 2 на 2 и аргумент argument conf.int = TRUE ’.

и т. Д. И т. Д. R не знает, как записать подобные вещи в файл. Точнее, он не знает, как ВЫ хотите, чтобы это было записано в файл.

Если вы просто хотите записать значение p, получите значение p и напишите:

 write(f$p.value,file="foo.values",append=TRUE)
4 голосов
/ 03 января 2012

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...