R语言 生信

如何安全地load多个RData?

2020-07-07  本文已影响0人  周运来就是我

朴素地说,RData可以存多个R变量;rds一般只存一个R变量。

如:

# Saving on object in RData format
save(data1, file = "data.RData")
# Save multiple objects
save(data1, data2, file = "data.RData")
# To load the data again
load("data.RData")

有时候在我们需要Loda数据的时候,如果Loda的RData中的变量名与当前的变量名有重复,就会导致被覆盖。这回引起一些不容易发现的bug。

那么该如何避免呢?就是每次Loda的时候,给load里面的数据匹配上相应的环境空间。昨天在逛Rbolg的时候,发现一位大佬,也谈到了这个问题,并给出了解决方案:

  LoadToEnvironment <- function(RData, env = new.env()){
    load(RData, env)
    return(env) 
  }

这样在load的时候,我们就可以:

 iris.env <- LoadToEnvironment('iris.RData')
  daisy.env <- LoadToEnvironment('daisy.RData')
  iris.fit <- iris.env$fit1
  daisy.fit <- daisy.env$fit1
  # Compare iris.fit and daisy.fit

相当于,给每个RData穿一个外衣。怎么样漂漂亮吗?

Safe Loading of RData Files
Saving Data into R Data Format: RDS and RDATA

上一篇下一篇

猜你喜欢

热点阅读