首页 > 解决方案 > 为什么工作目录会覆盖到当前 Rmd 文件的目录?

问题描述

我有一个R.proj名为的文件Food_Choices.Rproj,它应该将我的工作目录设置为~/Desktop/Food_Choices,一个包含根据 TIER 系统的可再现性文件的文件夹,例如

在此处输入图像描述

但它没有正确设置工作目录,因为当我用这样的代码编织我的处理文件时

food<-read_csv("Original_Data/food_coded.csv")

#imagine some processing code in between here

write.csv(food, file = "Analysis-Data/analysis_data.csv")

我收到此错误:

错误:“Original_Data/food_coded.csv”在当前工作目录(“/Users/IdanCarre/Desktop/Food_Choices/Command_Files”)中不存在。

不是工程目录,是加工文件的目录!

我以为我在 R 项目的上下文中打开文件时设置了工作目录,但这似乎不再发生(即使我一年前使用相同设置的文件仍然有效??)

注意:我不想使用

library(knitr)
opts_knit$set(root.dir = '/Users/IdanCarre/Desktop/Food_Choices')

因为想要重现结果的新用户必须手动将他们自己的目录插入到他们想要运行的每个文件中。这是他们不应该做的很多工作。

更新评论:

我使用了 here 包,它对 read.csv 的工作令人满意(它会引发数据列重复数据删除警告,但我认为现在可能还可以),但是当我将处理后的数据文件写入分析数据文件夹时,我我正在尝试使用

write.csv(food, file = here("Analysis-Data", "analysis_data.csv"))

我得到的错误是

文件错误(文件,ifelse(追加,“a”,“w”)):无法打开连接

如果我使用,我会遇到同样的问题

write.csv(food, file = "Analysis-Data/analysis_data.csv")

标签: rdirectoryknitrworking-directoryreproducible-research

解决方案


推荐阅读