控制dunn测试的输出

control the output of dunn test

我正在使用包 dunn.test 中的 dunn.test(),我不希望它向标准输出(控制台)打印任何内容,因为我已经做了很多次,并且我想看看我之前有没有警告

所以我取消了kruskal wallis test的打印,table这样的打印-

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

可以使用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

reprex package (v0.3.0.9001)

于 2020-04-17 创建

请注意,没有打印任何消息,输出也分配给了一个数据帧。