将 .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 保存在不同的目录中的主要内容,如果未能解决你的问题,请参考以下文章
小 ggplot 对象(1 mb)在保存时变成 7 GB .Rdata 对象
使用 rpy2 在 Python 中保存 RData 工作区
如何将“assign”函数生成的对象保存为循环中的.Rdata文件
R语言使用load函数将过往保存的工作空间镜像文件(RData)加载到当前会话使用q函数关闭当前工作空间(系统会提示是否保存或者取消)