R语言save()函数意外写入云盘目录问题排查与解决求助
问题原因
在R中,~代表的是用户主目录(比如Windows下的C:\Users\你的用户名,macOS下的/Users/你的用户名),而非当前工作目录(项目目录)。你的云盘(如OneDrive、iCloud)大概率将用户主目录下的文档文件夹设置为同步目录,所以你用~/data/my_filename保存的文件,实际存在于用户主目录的data文件夹(云盘同步的文档目录下),而非项目目录的data子文件夹。而load能成功加载,是因为该路径确实存在对应的文件,只是位置不符合你的预期。
解决方法
- 使用相对路径(最简单):直接用相对于当前项目目录的路径,前提是项目下已创建
data文件夹(未创建则先运行dir.create("data")):save(object, file = "data/my_filename") load(file = "data/my_filename") - 用
here包(推荐,适配复杂项目):here包会自动识别RStudio项目的根目录,不受当前工作目录变动影响:# 首次使用先安装 install.packages("here") library(here) # 保存和加载 save(object, file = here("data", "my_filename")) load(file = here("data", "my_filename")) - 拼接绝对路径:基于当前工作目录(项目目录)生成绝对路径,确保指向正确位置:
target_path <- file.path(getwd(), "data", "my_filename") save(object, file = target_path) load(file = target_path)
内容的提问来源于stack exchange,提问作者user3814433
相关产品推荐
相关产品推荐

