如何在不使用 print() 的情况下打印函数的结果?
How to print the result of a function without using print ()?
我需要在我的包的函数中打印 Tukey 测试结果。但是CRAN回复说我不能用print()/cat()。如果我用message(), message 出来的不是我想要的格式,如print()。
res.aov <- aov(y ~ x, data= data)
tukey<-TukeyHSD(res.aov)
print(tukey$`x[, 1]`)
用print(),结果如我所愿地出现在控制台上:
diff lwr upr p adj
2-1 0.0188276 0.003123183 0.03453202 0.01922062
但是用message(),结果是这样的:
0.01882759965134230.003123182712210140.03453201659047440.0192206190347084
对于像 print () 那样输出结果有什么建议吗?谢谢
您可以使用 capture.output()
函数将打印函数的所需结果保存到变量中。然后您正确格式化字符串并将其传递给 message()
。请参阅以下示例:
> x <- c(a = 1, b = 2)
> print(x)
# a b
# 1 2
> msg <- capture.output(print(x))
> message(paste(msg, collapse = "\n"))
# a b
# 1 2
我需要在我的包的函数中打印 Tukey 测试结果。但是CRAN回复说我不能用print()/cat()。如果我用message(), message 出来的不是我想要的格式,如print()。
res.aov <- aov(y ~ x, data= data)
tukey<-TukeyHSD(res.aov)
print(tukey$`x[, 1]`)
用print(),结果如我所愿地出现在控制台上:
diff lwr upr p adj
2-1 0.0188276 0.003123183 0.03453202 0.01922062
但是用message(),结果是这样的:
0.01882759965134230.003123182712210140.03453201659047440.0192206190347084
对于像 print () 那样输出结果有什么建议吗?谢谢
您可以使用 capture.output()
函数将打印函数的所需结果保存到变量中。然后您正确格式化字符串并将其传递给 message()
。请参阅以下示例:
> x <- c(a = 1, b = 2)
> print(x)
# a b
# 1 2
> msg <- capture.output(print(x))
> message(paste(msg, collapse = "\n"))
# a b
# 1 2