先前介绍了包datapasta,可以很好的简化数据框的一些复制粘贴的格式操作:

07. R 代码的收纳工—datapasta

写完后才发现,原来现在Rstudio 也已经提供了相关的操作了:

08. 一键美化你的代码 - 图1

看来它们也不甘落后呀。

但是formatR 的批量处理还是挺香的。

formatR

今天介绍一个神器——formatR 包。

参见:https://blog.csdn.net/weixin_41929524/article/details/108998848

比如我复制来的一串代码:

  1. function( bioPackage ){
  2. if(!bioPackage %in% rownames(installed.packages())){
  3. CRANpackages <- available.packages()
  4. if(bioPackage %in% rownames(CRANpackages)){
  5. install.packages( bioPackage)
  6. }else{
  7. BiocManager::install(bioPackage,suppressUpdates=F,ask=F)
  8. }
  9. }
  10. }
  11. x = 1:10

如果希望将文中赋值的等号替换为 <- ,可以添加参数arrow 为T,下面的代码表示将原本的代码输出为新文件 my_format:

  1. > tidy_source(source = "04-R-oop.R", arrow = T, file = "my_format.R")
  2. p_load(pryr, formatR, shiny)
  3. x <- 1
  4. class(x)
  5. attr(x, "class") <- "random"
  6. x
  7. class(x)
  8. function(bioPackage) {
  9. if (!bioPackage %in% rownames(installed.packages())) {
  10. CRANpackages <- available.packages()
  11. if (bioPackage %in% rownames(CRANpackages)) {
  12. install.packages(bioPackage)
  13. } else {
  14. BiocManager::install(bioPackage, suppressUpdates = F, ask = F)
  15. }
  16. }
  17. }
  18. x <- 1:10

有如下参数:

08. 一键美化你的代码 - 图2

其他操作还有tidy.dir 可以批量对目录下的所有R 脚本进行格式化。

可视化实现格式化

借助于shiny :

  1. library(shiny)
  2. tidy_app()

08. 一键美化你的代码 - 图3

相当于把参数替换为了选项,可以直接在底部的框框内输入希望替换的代码。