在 R 中函数的多个输出中输出彩色文本



我是用R编写函数的新手。当一个函数创建多个输出时,我将这些输出聚合到一个列表中,并使函数返回此列表。此方法还允许输出简单文本。但是,我似乎无法打印彩色文本。

举个例子:

library (crayon)
my_function <- function (a = 3, b = 6) {
first_result <- a * 3
second_result <- b / a
print (list (first_result, 
second_result, 
"my_text"))
}
my_function()

它放出来(对我来说还可以(:

[[1]]
[1] 9
[[2]]
[1] 2
[[3]]
[1] "my_text"

现在我想看到彩色的"my_text"(有效(:

cat (green ("my_text")) 

但是,当放入列表中时,行为不是我想要的行为 - 文本首先发布,列表中的第一个参数跟进:

x <- 5
list (x, cat (green ("my_text")))

与以下产品相比:

list (x, "my_text")

这种行为对我来说有点不走运 - 我希望函数在结果后发布一行彩色文本。我的尝试

my_function <- function (a = 3, b = 6) {
first_result <- a * 3
second_result <- b / a
print (list (first_result, 
second_result, 
cat (green ("my_text"))))
}
my_function()

当然没有成功。不幸的是,我对在 R 中打印彩色文本没有其他想法。任何帮助,不胜感激。

Cat 不返回变量,而是返回NULL

绿色输出是否需要在列表中?如果没有,那么这可以工作:

my_function <- function (a = 3, b = 6) {
first_result <- a * 3
second_result <- b / a
print (list (first_result, 
second_result 
))
cat(green ("my_text"))
}
my_function()

我尝试使用capture.output((,但它只捕获文本而不是颜色。

print(capture.output(cat(green ("my_text"))))

我也尝试使用R markdown(https://rmarkdown.rstudio.com/index.html(,然后你失去了颜色。所以我不相信目前有可能

最新更新