Контролировать вывод теста Данна

Я использую dunn.test() из пакета dunn.test, и я не хочу, чтобы он выводил что-либо на вывод std (консоль), потому что я делаю это много раз, и я хочу посмотреть, есть ли у меня какие-либо предупреждения до этого.

Поэтому я отменил распечатку теста Крускала Уоллиса и распечатку таблицы следующим образом:

dunn.test(x = data, g = grouping, kw = FALSE, table = FALSE)

но он по-прежнему печатает новую строку после каждого теста, есть ли способ предотвратить печать новой строки? или способ поймать новую строку из печати?

Воспроизводимый пример dunn.test-

library(dunn.test)
df <- data.frame(d = c(rnorm(100), rnorm(100, 5)),
                 group1 = rep(c('a','b','c','d'),50),
                 group2 = rep(c('a','b','c','d'),each =50))
test1 <- dunn.test(x = df$d, df$group1)
test2 <- dunn.test(x = df$d, df$group2)
test3 <- dunn.test(x = df$d, df$group1, kw = FALSE)
test4 <- dunn.test(x = df$d, df$group1, kw = FALSE, table = FALSE) # still prints a newline

1 ответ

Решение

Вы можете использовать capture.output() функция, чтобы скрыть вывод

capture.output(dunn.test(x = df$d, df$group1))

Любая ошибка или предупреждение будут отображаться.

Этот ответ сработал, но захваченный вывод все еще был напечатан. Вот пример того, что сработало для меня:

library(dunn.test)

capture.output(df <-
  as.data.frame(dunn.test(
    x = iris$Sepal.Length,
    g = iris$Species,
    table = FALSE,
    kw = FALSE,
    label = FALSE,
    alpha = 0.05
  )), file = "NULL")

df
#>       chi2         Z            P   P.adjusted            comparisons
#> 1 96.93744 -6.106326 5.097522e-10 5.097522e-10    setosa - versicolor
#> 2 96.93744 -9.741785 1.000049e-22 1.000049e-22     setosa - virginica
#> 3 96.93744 -3.635459 1.387433e-04 1.387433e-04 versicolor - virginica

Создано 17.04.2020 с помощью пакета REPEX (v0.3.0.9001)

Обратите внимание, что сообщение не было напечатано, а вывод также был назначен фрейму данных.

Другие вопросы по тегам