简介

学习python 时,我们可以添加头部注释:

003. pycharm 使用

相当于告诉别人这个脚本主人的信息:

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @Time : 2021/2/22 12:29 下午
  4. # @Author : Peng
  5. # @Site : yuque.mugpeng.live
  6. # @Email : mugpeng@foxmail.com
  7. # @File : my_test2.py

在R studio 配置

snippet

在R studio 中,并没有发现直接设置的选项,但看到可以利用tab 补全进行配置:https://stackoverflow.com/questions/40616132/create-a-default-comment-header-template-in-r

我们打开Preferences > Code > Edit Snippets在最后添加 :

  1. snippet header_script
  2. ##################################################
  3. ## Project:
  4. ## Script purpose:
  5. ## Date:
  6. ## Author: Peng
  7. ## Version:
  8. ##################################################

09. 设置R 头部文件 - 图1

需要注意的是,snippet 底下的字段需要使用tab 锁进,使用两个空格则会出现粉红色警示。

设置完后,输入head 就会提示了:

09. 设置R 头部文件 - 图2

自动补全即可。

但我目前还没有找到相关函数在snippet ,比如date 直接使用date(),R version 直接用R.version.string

ps:https://zhuanlan.zhihu.com/p/112038220,我们还可以非常灵活的使用snippet 加速代码的书写过程。

写函数

这里直接参考https://stackoverflow.com/questions/40616132/create-a-default-comment-header-template-in-r 的回答:

  1. make_r_template <- function(filename = "file.R", dir = getwd())
  2. {
  3. if (file.exists(file.path(dir, filename))) invisible(NULL)
  4. else{
  5. write(c("##################################################",
  6. "## Project:",
  7. paste0("## File name: ", filename),
  8. paste0("## Date: ", date()),
  9. "## Author: Peng",
  10. paste0("## R_Version: ", R.version.string),
  11. "##################################################"),
  12. file = file.path(dir, filename),
  13. sep = "\n")
  14. }
  15. }
  16. make_r_template(filename = 'test2.R')

这里我简单加工了一下。

另外函数中的invisible 在书写函数时非常有用。它可以在函数结果不赋值时,在调用函数时不返回函数最终的结果,上图中,当if 为True,函数返回NULL,而invisible 会使结果不打印到屏幕。

下面,生成的test2 文件就会包含开头:

  1. ##################################################
  2. ## Project:
  3. ## File name: test2.R
  4. ## Date: Tue Mar 2 17:02:33 2021
  5. ## Author: Peng
  6. ## R_Version: R version 4.0.4 (2021-02-15)
  7. ##################################################