问题:R Studio中的工作目录;";在包含打开的R标记文件的目录上

问题:R Studio中的工作目录;";在包含打开的R标记文件的目录上,r,rstudio,r-markdown,R,Rstudio,R Markdown,我使用的是R的最新版本(3.3.2),运行在MacOS Sierra(10.12.3)上的最新版本RStudio(1.0.136)。我遇到了一个问题,我的工作目录与包含我当前在RStudio中打开的.RMD文件的目录相对应,并且被卡住了。打开文件后,工作目录被正确设置为保存.Rproj文件的目录。但是,当我加载一个路径与该目录相关的文件时,我会得到一个错误,即当前工作目录中没有这样的文件,并且该错误会将.RMD文件的位置返回为该工作目录 但是,工作目录(使用getwd())仍然读取工作目录应该位

我使用的是R的最新版本(3.3.2),运行在MacOS Sierra(10.12.3)上的最新版本RStudio(1.0.136)。我遇到了一个问题,我的工作目录与包含我当前在RStudio中打开的.RMD文件的目录相对应,并且被卡住了。打开文件后,工作目录被正确设置为保存.Rproj文件的目录。但是,当我加载一个路径与该目录相关的文件时,我会得到一个错误,即当前工作目录中没有这样的文件,并且该错误会将.RMD文件的位置返回为该工作目录

但是,工作目录(使用
getwd()
)仍然读取工作目录应该位于的位置,并且无论我尝试将其设置在何处,当我尝试读取文件时仍然会收到相同的错误消息。值得注意的是,我没有收到工作目录无法更改的错误消息——R告诉我工作目录已更改,并且该目录据称是当前工作目录……但事实并非如此

据我所知,我已经完全尝试过卸载R和R studio并重新安装,但没有成功。有人有解决办法吗?这让我现在非常沮丧,因为我必须修改笔记本中的所有相关路径,我已经定义了这些路径,以便在此期间完成我的工作

额外信息,以防相关:我从一个时间机器备份中恢复,我怀疑可能已被破坏;我的应用程序文件夹中的某些内容丢失,我必须手动移动这些内容。这可能是问题的根源吗?在与文件系统交互时,R是否依赖于其他系统文件?我试图避免进行干净的操作系统安装或零碎地重建文件,因为我不知道这是否真的是问题所在



提前谢谢

这是一个已知的RStudio笔记本(工作目录大约在一半以下)。笔记本与文件在同一目录中执行。正如@Simon Jackson所指出的,您可以使用
knitr::opts\u knit$set(root.dir=normalizePath())
更改此设置

这是一个已知的RStudio笔记本(工作目录大约在一半以下)。笔记本与文件在同一目录中执行。正如@Simon Jackson所指出的,您可以使用
knitr::opts\u knit$set(root.dir=normalizePath())
更改此设置

当不使用RStudio时,您可以更改工作目录吗?您在尝试编织.Rmd文件时是否遇到问题?如果是这样,所有代码块都将根目录视为.Rmd的目录,而不是项目的目录。例如,如果它是项目目录下的一个目录,您可以添加
knitr::opts_knit$set(root.dir='../')
,使路径文件相对于项目目录。@Gregor-Yup!不使用RStudio并将.RMD文件中的相同代码直接写入R控制台时没有问题。@SimonJackson问题发生在我尝试在.RMD中内联运行代码时——自从问题出现tbqh以来,我没有尝试过编织任何东西。您是编织.RMD文件还是将其作为笔记本运行?您可以更改工作模式吗不使用RStudio时的目录?尝试编织.Rmd文件时是否遇到问题?如果是这样,所有代码块都将根目录视为.Rmd的目录,而不是项目的目录。例如,如果它是项目目录下的一个目录,您可以添加
knitr::opts_knit$set(root.dir='../')
,使路径文件相对于项目目录。@Gregor-Yup!不使用RStudio并将.RMD文件中的相同代码直接写入R控制台时没有问题。@SimonJackson问题发生在我尝试在.RMD中内联运行代码时——自从问题出现tbqh以来,我从未尝试过编织任何东西。您是编织.RMD文件还是将其作为笔记本运行?谢谢您提供的信息!这对我来说似乎很奇怪,因为我在一个研讨会上与许多使用相同文件的人一起工作,他们的RStudio行为与我使用相同版本的RStudio行为不同。。。我将使用该代码作为解决方法,所以谢谢!这是偶然的新行为吗?我不这么认为。我很确定我记得在预览版中看到过它。很有趣。我刚刚与同事确认,我们使用的是同一版本。讲师分发我们都在本地运行的.Rmd笔记本,它们的代码块引用它们设置的任何工作目录,而不运行任何knitr包函数,至少是有意的。我很困惑。我从我的导师那里了解到,我们实际上并没有使用笔记本,而是使用普通的R标记文件。这是我的想法,但我自己也在猜测。那么,我想回到原点。谢谢你的信息!这对我来说似乎很奇怪,因为我在一个研讨会上与许多使用相同文件的人一起工作,他们的RStudio行为与我使用相同版本的RStudio行为不同。。。我将使用该代码作为解决方法,所以谢谢!这是偶然的新行为吗?我不这么认为。我很确定我记得在预览版中看到过它。很有趣。我刚刚与同事确认,我们使用的是同一版本。讲师分发我们都在本地运行的.Rmd笔记本,它们的代码块引用它们设置的任何工作目录,而不运行任何knitr包函数,至少是有意的。我很困惑。我从我的导师那里了解到,我们实际上并没有使用笔记本,而是使用普通的R标记文件。这是我的想法,但我自己也在猜测。那么,回到原点吧,我想。