vlambda博客
学习文章列表

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

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

install.packages(“crayon”)

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

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

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


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

 

#载入包library(crayon)cat(red("Hello","world!\n"))cat(blue("Hello","world!\n"))

 

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

 

#基于通道的多文本处理cat(green( 'I am a green line ' %+% blue$underline$bold('with a blue substring') %+% 'that becomes green again!\n' ))

 

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

 

#定义自己的主题,各属性通过$进行分割载入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")) 

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

 

 

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

## Create a style function without creatinga stylepink <- 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 maroonbackgroundmake_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"))

 

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


欢迎大家学习交流!