将 .RData 保存在不同的目录中

Posted

技术标签:

【中文标题】将 .RData 保存在不同的目录中【英文标题】:Save .RData in a different directory 【发布时间】:2021-04-23 08:17:52 【问题描述】:

我从特定文件夹加载我的文件 (.RData),并创建了一个子文件夹来保存一些示例和子集。所以,我想将这些元素保存在子文件夹中,并且它们没有相同的名称结构,因为我有多个数据集(例如它不能是 sub1、sub2 等,我必须编写 try1、full_sample、sub_2021 等等)。

我尝试了以下方法:

subsets_samples <- file.path <-("/Volumes/WD_BLACK/Merge/SAMPLES_SUBSETS")
fname <- file.path(subsets_samples, ".RData")
save(mydata, file=fname)

但显然保存部分有问题。我的目标是拥有类似的东西:

save(mydata, file = "newname")

使用自动放入的 fname 中的 .RData 格式。

我看到了一些带有循环等的答案,但我不太了解这个过程,对不起。

谢谢!

【问题讨论】:

【参考方案1】:

file.path 的问题在于它会在每个元素之间放置一个分隔符(例如,/¸)。因此,除了实际文件名之外,您还必须使用 paste0

# If I understand you correctly, you want the iteration, like try1, full_sample, sub_2021 and so on in your file name. define them somewhere in your loop/script
iteration <- "full_sample"
fname <- file.path("Volumes", "WD_BLACK", "Merge", "SAMPLES_SUBSETS", paste0(iteration, ".Rds"))

另外,我建议使用saveRDS 而不是save,因为如果您只想保存一个对象,它是合适的函数。

saveRDS(mydata, file = fname)

【讨论】:

好吧,例如,如果我的子集在我的全局环境中被命名为“sample2021”,我希望它在我的“SAMPLES_SUBSETS”子文件夹中保存为“sample_2021.RData”(或 .Rds)。此外,我有来自多个数据集的多个子集,因此在我的 GE 中可以将另一个子集命名为“supply_y1”,依此类推。这是您的代码的结果:“错误:无法打开压缩文件'Volumes/WD_BLACK/MSI/SAMPLES_SUBSETSfull_sample.Rds',可能的原因:'没有这样的文件或目录' 对不起,我的错。我以前从未真正遇到过file.path。现在应该可以工作了。 现在路径和文件名看起来正确。你的电脑上有这样的文件夹吗? 当我做 saveRDS(sample2021, file=fname) 时,我得到这个:'Volumes/WD_BLACK/MSI/SAMPLES_SUBSETS/full_sample.Rds',:'没有这样的文件或目录';实际上,我不理解“迭代”行,我只想将全局环境中的内容保存在文件夹“SAMPLES_SUBSETS”中,而不是名称为“full_sample”。我的意思是,当我在发布消息之前在 Stack 上查看这个问题时,我只看到这个主题的数据集具有相同的结构:“sub1,sub2”等等,这使得它们的循环无法为我工作我每次都有不同的结构。 比如,一个我的样本是“full_sample”,另一个是“p1”,另一个是“suppliers_21”等等,名称中没有共同的结构。

以上是关于将 .RData 保存在不同的目录中的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中保存和加载模型

在循环中动态命名保存的对象[重复]

小 ggplot 对象(1 mb)在保存时变成 7 GB .Rdata 对象

使用 rpy2 在 Python 中保存 RData 工作区

如何将“assign”函数生成的对象保存为循环中的.Rdata文件

R语言使用load函数将过往保存的工作空间镜像文件(RData)加载到当前会话使用q函数关闭当前工作空间(系统会提示是否保存或者取消)