5

我正在构建一个 R 包并使用data-rawdata存储一个预定义RxODE模型库。这很好用。

但是,生成的.rda文件在每一代都会更改。某些模型包含 R 环境,并且序列化似乎包含“创建时间”时间戳。这意味着每次data/重新生成目录时,所有文件都已更改...

是否有某种方法可以修改 R 环境的序列化以使其可重现?

storeFile <- function(file) {
  env <- new.env()
  fun <- function(x) {x+3}
  environment(fun) <- env

  save('fun', file = file, ascii=TRUE)
}

storeFile('fileA.rda')
storeFile('fileB.rda')
message("Files are identical? ", identical(readLines('fileA.rda'), readLines('fileB.rda')) )
4

1 回答 1

0

非常有趣的问题。有一个奇怪的行为:

storeFile <- function(file) {

  env <- new.env()
  fun <- function(x) {x+3}
  environment(fun) <- env

  save.image(file = file, ascii=TRUE)
}


storeFile('fileA.rda')
storeFile('fileB.rda')
message("Files are identical? ", identical(readLines('fileA.rda'), readLines('fileB.rda')) )


storeFile('fileA.rda')
storeFile('fileB.rda')
message("Files are identical? ", identical(readLines('fileA.rda'), readLines('fileB.rda')) )

我的输出在第一个相同时为 FALSE,但在第二个中为 TRUE。我不清楚为什么。另外我使用的是save.image而不是save,所以我不知道它是否适合你!最好的!

于 2019-02-05T11:43:27.333 回答