当写R代码时,很多时候写的代码或者看到的代码缩进都很难统一到标准的格式。这时为了规范化代码,我们需要再代码中一行一行查代码,将其修改成标准的格式。那么我们有没有
当写R代码时,很多时候写的代码或者看到的代码缩进都很难统一到标准的格式。这时为了规范化代码,我们需要再代码中一行一行查代码,将其修改成标准的格式。
那么我们有没有一键代码整理的方式或者R包呢?
答案是有的!
下面我们介绍两种方法。
RStudio 快捷操作
如果你使用的是RStudio
写代码的话,那么只用全选代码(Ctrl + A
),而后输入如下命令:
Ctrl + Shift + A
即可简单调整缩进与格式。
但这样的操作知识对现有代码的微调,不能将代码中的=
统一成<-
,也不能将函数或者循环后面的大括号{ }
换行或者空格。同样也不能很好的完美调整缩进。
这时我们推荐另一个神器,谢益辉大神的 formatR
包。
formatR 包
我们只需使用如下代码,就可以对路径中的代码一键美化:
library(formatR)# tidy_source("file path")tidy_source("C:/Users/PC_name/Desktop/myfile.R")
如果添加参数arrow = T
,就可将等号=
替换成复制号<-
;
file = "C:/Users/PC_name/Desktop/myfile.R" 则可直接将原本路径下的文件替换,变成整理好的代码。
还有更多功能,可以直接看包内的说明:
Arguments | |
---|---|
source | a character string: location of the source code (default to be the clipboard; this means we can copy the code to clipboard and use tidy_source() without specifying the argument source) |
comment | whether to keep comments (TRUE by default) |
blank | whether to keep blank lines (TRUE by default) |
arrow | whether to replace the assign operator = with <- |
brace.newline | whether to put the left brace { to a new line (default FALSE) |
indent | number of spaces to indent the code (default 4) |
wrap | whether to wrap comments to the linewidth determined by width.cutoff (note that roxygen comments will never be wrapped) |
output | output to the console or a file using cat? |
text | an alternative way to specify the input: if it is NULL, the function will read the source code from the source argument; alternatively, if text is a character vector containing the source code, it will be used as the input and the source argument will be ignored |
width.cutoff | passed to deparse: integer in [20, 500] determining the cutoff at which line-breaking is tried (default to be getOption(“width”)) |
… | other arguments passed to cat, e.g. file (this can be useful for batch-processing R scripts, e.g. tidy_source(source = ‘input.R', file = ‘output.R')) |
配合 Shiny 包使用
如果你还是觉得这些参数太复杂了,就想要无脑靠无脑点击鼠标就能完成代码美化工作,那么可以事先安装好 Shiny
包,而后使用如下代码,利用交互界面进行代码美化工作。
library(shiny)tidy_app()
下面是一个例子:
美化前的代码:
美化后的代码:
参考
an introduction to this package, with examples and further notes
以上就是R语言学习代码格式一键美化的详细内容,更多关于R语言代码格式美化的资料请关注好代码网其它相关文章!