将现有脚本添加到Rstudio项目

将现有脚本添加到Rstudio项目,r,rstudio,R,Rstudio,我在Rstudio中工作,打开了多个脚本,它们有不同的工作目录;但是,每个工作目录都存在于我的计算机上一个较大的文件夹中(请参见下文)。在不重新组织所有文件和更改每个脚本的工作目录的情况下,是否可以将这些脚本添加到Rstudio项目中 计算机上的文件结构: 文件夹A ~~文件夹1 ~~文件夹2 ~~文件夹3 假设我打开了3个脚本,每个脚本都有一个文件夹1、2或3的工作目录。我可以创建一个包含所有三个脚本的项目吗。例如,将工作目录设置为“文件夹A” 非常感谢。从技术上讲,您可以在项目中以编程方式更

我在Rstudio中工作,打开了多个脚本,它们有不同的工作目录;但是,每个工作目录都存在于我的计算机上一个较大的文件夹中(请参见下文)。在不重新组织所有文件和更改每个脚本的工作目录的情况下,是否可以将这些脚本添加到Rstudio项目中

计算机上的文件结构:

文件夹A

~~文件夹1

~~文件夹2

~~文件夹3

假设我打开了3个脚本,每个脚本都有一个文件夹1、2或3的工作目录。我可以创建一个包含所有三个脚本的项目吗。例如,将工作目录设置为“文件夹A”


非常感谢。

从技术上讲,您可以在项目中以编程方式更改工作目录,但这被认为是一种非常糟糕的做法,强烈建议您不要这样做。但是,您可以在项目的顶层设置工作目录(示例中为文件夹a的完整路径),然后通过相应的相对路径引用位于文件夹1-3中的脚本和对象。例如:
”/Folder1/MyScript.R“
”/Folder2/MyData.csv“

应该可以在较大的文件夹中创建项目。您甚至可以在
文件夹a
中构造一个简单的主脚本来管理此工作流:

setwd("./Folder 1")
source("scriptx")
setwd("..")

setwd("./Folder 2")
source("scripty")
setwd("..")

setwd("./Folder 3")
source("scriptz")
setwd("..")
与运行
文件夹A中每个脚本的
源(“文件夹1/scriptx”)
相比,主脚本将运行其自己文件夹中的每个脚本。只需确保在每个文件夹中运行代码后使用
setwd(“…”)
,甚至可以在其间运行代码,将输出保存到主
文件夹A

system("mkdir Folder_1")
setwd("./Folder_1")
source("../Folder A/scriptx")
setwd("..")
如果您的工作流总是以这种方式创建文件夹,我不认为如果您使用相对路径,这将是如何不可复制的。尽管依赖于平台,但此修改版本将动态创建文件夹并运行保存在
文件夹A
中的脚本

system("mkdir Folder_1")
setwd("./Folder_1")
source("../Folder A/scriptx")
setwd("..")

请注意,在R中运行terminal命令时,建议避免在目录或文件名中使用空格。

有一个帮助论坛,您可以查看,但您可能应该在那里更详细地描述您的问题,因为您的问题并不清楚。在我们的网站上,与统计无关的问题是离题的:我同意这个问题在交叉验证中是离题的。但是,我不建议使用RStudio论坛(或者,至少将其作为主要的答案来源),因为他们回答问题的速度相当慢,有时甚至会忽略(忽略)这些问题。应在StackOverflow(SO)上使用标签
r
rstudio
询问此类问题。我将标记您的问题以供迁移,本地版主将帮助您解决这一问题。别忘了注册以便能够在那里进行交互。拥有
setwd()
&
source()
,有什么不好?@gung:我没有说过任何反对
source()
的话。但是,显式使用
setwd()
被认为是一种不良做法,会损害软件的再现性:。话虽如此,很少有(项目范围内)单独使用
setwd()
的情况。