错误示例:
setwd("E:/data/RNA-seq/")
rm(list=ls())
像上面的这样的错误例子的R脚本代码经常出现在各个地方,大家似乎都已经习惯了这种做法。~~然后你的电脑就会被fire~~。 原文地址:https://www.tidyverse.org/blog/2017/12/workflow-vs-script/
此文件旨用在替代常用的setwd("")和rm(list=ls())
在R代码的开头经常见到上面的命令,但是这些命令对于R脚本并不友好。需要解决R代码无论是win或linux都能正常运行,而且不需要手动的变更修改路径相关的信息。
- #### 使用here
代替常规的设置目录,可以解决win和unix的系统路径问题,而且无论代码的脚本文件被迁移到何处都能运行,而无需担心路径问题。
here::i_am("usehere/use_here.R")
使用这条命令可以把here的路径设置为usehere
文件夹的上一级文件夹
here::i_am("use_here.R")
使用这条命令可以把here的路径设置为use_here.R
所在的文件夹
here存储的是绝对路径,使用时直接连接对应的文件即可。
read.csv(here("data","testgene.csv"))
中,就是读取here绝对路径下的data文件夹里的testgene.csv文件。
here::dr_here()
命令可以查看当前的here的路径,以及为什么会是这个路径的原因。
- #### 使用saveRDS
和readRDS
可以替代你的rm(list=ls())
rm(list=ls())
是杀伤力巨大的代码,对于带个R文件来说影响不大,但是如果整合到大的项目里后,就会把整个项目进程里的变量全部清除。所以推荐是,如果运算量比较大的变量的值,生成后直接就地保存。使用saveRDS
保存为RDS文件,后续需要使用时直接读取RDS即可。
install.packages("here") #安装here
library(here) #加载here包
here::i_am("use_here/use_here.R") #设置here的路径
testgene <- read.csv(here("data","testgene.csv")) #读取文件路径使用here
saveRDS(gene,file=here("data","genes.RDS"),compress = "gzip") #保存文件路径使用here
gene2 <- readRDS(here("data","genes.RDS")) #读取RDS文件
gene <- read.csv(here("gene.csv"))
saveRDS(gene,file=here("genes.RDS"),compress = "gzip")
gene2 <- readRDS(here("genes.RDS"))