R语言实现输出文本的多样式
大家也许习惯了在R控制台上单调的文本输出。但是有人就突发奇想开发了一个可以自定义结果颜色,属性的R包crayon。此包可以让用户在支持多颜色输出的控制台中实现多颜色的丰富输出,比如Rstudio。首先我们看下包的安装:
install.packages(“crayon”)
首先我们看下在这个包中可以修改的属性:
接下来我们直接通过实例看下具体的实现过程:
#载入包
library(crayon)
cat(red("Hello","world!\n"))
cat(blue("Hello","world!\n"))
#基于通道的多文本处理
cat(green(
'I am a green line ' %+%
blue$underline$bold('with a blue substring') %+%
'that becomes green again!\n'
))
#定义自己的主题,各属性通过$进行分割载入
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())。此函数主要创建颜色的属性。此功能可以更加灵活的操纵文本及背景的展示颜色。我们直接看下两种使用的实例:
## 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"))
至此就是这个包的全部功能了。至于什么应用那就要看是否需要了,本人觉得在开发过程中应用很广。
欢迎大家学习交流!