R中的相对路径:如何避免我的计算机着火?

R中的相对路径:如何避免我的计算机着火?,r,R,不久前,我正在读一篇关于改进项目的文章。建议不要使用setwd,否则我的电脑会烧坏: 如果R脚本的第一行是 setwdC:\Users\jenny\path\that\only\I\have 我将进入你的办公室,点燃你的电脑有很多方法可以组织代码和数据以用于R。鉴于OP中描述的纵火犯拒绝了至少两种在R脚本中查找项目文件的方法,下一步最好的方法是询问纵火犯如何执行此功能,并相应地调整代码和文件结构 更新:由于纵火犯似乎是在Tidyverse.org上写文章的人,请参阅OP中的Tidyverse文章

不久前,我正在读一篇关于改进项目的文章。建议不要使用setwd,否则我的电脑会烧坏:

如果R脚本的第一行是

setwdC:\Users\jenny\path\that\only\I\have


我将进入你的办公室,点燃你的电脑有很多方法可以组织代码和数据以用于R。鉴于OP中描述的纵火犯拒绝了至少两种在R脚本中查找项目文件的方法,下一步最好的方法是询问纵火犯如何执行此功能,并相应地调整代码和文件结构

更新:由于纵火犯似乎是在Tidyverse.org上写文章的人,请参阅OP中的Tidyverse文章和答案,请参阅OP中的其他链接,因此您的计算机似乎相对安全

如果您与批处理进程共享代码或执行代码,而用户不是您,那么一种有用的方法是将代码、数据和配置置于版本控制之下,并开发一个运行手册来解释其他人如何检索组件并在另一台计算机上执行它们

正如OP的评论中所指出的,如果可以通过运行手册中的文档使其使用可靠,那么here::here没有什么错

我将所有的R代码构造为,这些代码被组织到一个gitrepositories目录中。所有项目都可以从gitrepositories目录作为子目录访问。如果我需要共享一个项目,我会让GitHub上的其他用户可以访问该项目


在我的R代码中,我引用外部文件作为项目根目录的子目录,例如./data/gen01.csv

创建一个RStudio项目,然后引用项目根文件夹中具有相对路径的所有文件。这样,所有用户都将打开项目并自动拥有正确的工作目录。

您可以查看RSuite软件包的文档。它正在使用指向当前运行R脚本的脚本路径。我使用“file.path”命令创建相对路径

我没有访问链接1或链接2,但rprojroot或以下是我的项目转到选项,前提是您在项目目录中有一个标记,并且您使用了您应该使用的项目:-关于脚本,环境变量方法对于bash、python非常常见,etc脚本,是R的一个很好的选项。对于一些自动化任务,我有一个jobs文件夹,其中包含R脚本,还有一个conf文件夹,其中包含类似Renviron的文件,我在脚本顶部读取关联的Renviron。但对于共享项目,我看这里没有什么问题::此处为每个项目的根文件夹创建一个环境变量,您希望以其他方式共享,而不仅仅是一个交互式rstudio项目。什么是R项目?@Ista-请参阅以获取详细信息。@LenGreski您链接的文章从不使用短语R项目,因为R项目不是一个东西。Rstudio项目是一个东西,但Rstudio不是R,Rstudio项目也不是R项目。@ista-我不打算在这里开始本体论辩论,我只是解释了我认为Felipe在他的帖子中的意图。我知道项目是RStudio的一项功能,因为我发布的URL是指RStudio网站。谢谢@LenGreski,这确实是我想说的。我编辑了我的答案以反映这一点。谢谢。运行手册是具体的还是自述文件?不客气,@Pete900。A是一组程序,通常由技术运营部门执行。自述可以用作记录运行手册的地方。这是一个非常简单的例子,几年前我为约翰·霍普金斯大学(Johns Hopkins)编写了一个获取和清理数据的例子。