代码组织
- 任何R代码应该认为是从全新的R进程开始运行,其工作路径就是项目路径。它在自己的工作空间和文件夹中创建自己需要的所有东西,不触及它没有创建的东西。比如,它不会安装额外的包。???
这样才能保证在自己电脑的任何位置,或者他人的电脑上都可以顺利运行。
-
如果脚本包含代码很多,可以考虑安装逻辑顺序将其拆分成多个小脚本(模块),并按执行顺序命名如1_fetch_data.R, 7_plot_data.R等。模块和真正的脚本一样使用,而且模块化的工作流程可以作为自定义函数的集合。
-
每次退出Rstudio时不要saving your workspace image。重新打开时,我们需要的所有变量和结果应该可以通过重新运行一遍脚本得到。如何关掉询问对话框:
Tools > Global Options and clicking “Never” in the dropdown next to “Save workspace to .RData on exit”.
代码本身
- 将所有
library()
和hard-coded变量放在脚本的最前面。 - 避免用rm(list=ls)
- 避免在R文档在最上面用setwd
- Organize each logical project into a folder on your computer.
- 确保顶级文件夹是一眼就能看明白的是有特征的。例如顶级文件夹中有一个名字是.here的空文件。或者,如果你使用RStudio和/或Git,那些都会留下特征文件,这将完成工作。
- 使用here package的
here()
函数可在读取或写入文件时构建路径。创建相对于顶级目录的路径。
在foofy目录启动下面代码。(foofy目录可以在任何地方)
library(ggplot2)
library(here)
df <- read.delim(here("data", "raw_foofy_data.csv"))
p <- ggplot(df, aes(x, y)) + geom_point()
ggsave(here("figs", "foofy_scatterplot.png"))
-每当您处理此项目时,从项目的顶级目录启动R进程。如果从shell启动R,则首先启动切换目录(Change Directory: CD)到正确的文件夹。
注释
分析数据时,注释用来记录重要的发现和分析决策。如果你发现自己要用注释来解释自己的代码在做什么,考虑将代码写的更清楚。如果你的注释比代码还多,考虑使用RMarkdown。
参考
1.Efficient R programming 电子书
网友评论