R语言实现输出文本的多样式

2020-08-25 11:41:56 浏览数 (2)

大家也许习惯了在R控制台上单调的文本输出。但是有人就突发奇想开发了一个可以自定义结果颜色,属性的R包crayon。此包可以让用户在支持多颜色输出的控制台中实现多颜色的丰富输出,比如Rstudio。首先我们看下包的安装:

代码语言:javascript复制
install.packages(“crayon”)

首先我们看下在这个包中可以修改的属性:

接下来我们直接通过实例看下具体的实现过程:

代码语言:javascript复制
#载入包
library(crayon)
cat(red("Hello","world!n"))
cat(blue("Hello","world!n"))
代码语言:javascript复制
#基于通道的多文本处理
cat(green(
   'I am a green line ' % %
   blue$underline$bold('with a blue substring') % %
    'that becomes green again!n'
  ))
代码语言:javascript复制
#定义自己的主题,各属性通过$进行分割载入
error <- red $ bold
 warn <- magenta $ underline
 note <- cyan
 cat(error("Error: subscript out of bounds!n"))
 cat(warn("Warning: shorter argument was recycled.n"))
 cat(note("Note: no such directory.n"))
 

此包还有个更高级的功能那就是自己创建输出的属性,需要用到函数make_style(...,bg = FALSE, grey = FALSE, colors = num_colors())。此函数主要创建颜色的属性。此功能可以更加灵活的操纵文本及背景的展示颜色。我们直接看下两种使用的实例:

代码语言:javascript复制
## Create a style function without creatinga style
pink <- make_style("pink")
bgMaroon <- make_style(rgb(0.93, 0.19,0.65), bg = TRUE)
cat(bgMaroon(pink("I am pink if yourterminal wants it, too.n")))
 
## Create a new style for pink and maroonbackground
make_style(pink = "pink")
make_style(bgMaroon = rgb(0.93, 0.19,0.65), bg = TRUE)
"pink" %in% names(styles())
"bgMaroon" %in% names(styles())
cat(style("I am pink, too!n","pink", bg = "bgMaroon"))

至此就是这个包的全部功能了。至于什么应用那就要看是否需要了,本人觉得在开发过程中应用很广。

0 人点赞