R 当前工作目录中的setwd()

R 当前工作目录中的setwd(),r,R,我有一个文件夹列表。在每个文件夹中都有一个R相同的脚本,必须在文件夹中的文件上运行。我写了一次脚本,并将脚本复制到每个文件夹中。问题是我有一个大约100个文件夹的列表,所以我不可能手动在当前工作目录中设置wd()。我想知道是否可以通过以下方式将当前工作目录设置为例如“.”: setwd("/User/myname/./") 或者以另一种简单的方式告诉R当前工作目录,而不是每次键入文件夹名称。据我所知,您希望触发一批R脚本,其中脚本分布在多个文件夹中 就我个人而言,我可能会编写一个shell脚本

我有一个文件夹列表。在每个文件夹中都有一个R相同的脚本,必须在文件夹中的文件上运行。我写了一次脚本,并将脚本复制到每个文件夹中。问题是我有一个大约100个文件夹的列表,所以我不可能手动在当前工作目录中设置wd()。我想知道是否可以通过以下方式将当前工作目录设置为例如“.”:

setwd("/User/myname/./")

或者以另一种简单的方式告诉R当前工作目录,而不是每次键入文件夹名称。

据我所知,您希望触发一批R脚本,其中脚本分布在多个文件夹中

就我个人而言,我可能会编写一个shell脚本(或操作系统等效)来实现这一点,而不是在R中实现

for dir in /directoriesLocation/*/
do
    cat $dir/scriptName.R | R --slave --args $arg1 $arg2
done
其中,$dir是包含R脚本的所有目录的位置scriptName.R

如何

# set the working directory to the main folder containing all the directories
setwd( "/user/yourdir/" )

# pull all files and folders (including subfolders) into a character vector
# keep ONLY the files that END with ".R" or ".r"
r.scripts <- list.files( pattern=".*\\.[rR]$" , recursive = TRUE )

# look at the contents.. now you've got just the R scripts..
# i think that's what you want?
r.scripts

# and you can loop through and source() each one
for ( i in r.scripts ) source( i )
#将工作目录设置为包含所有目录的主文件夹
setwd(“/user/yourdir/”)
#将所有文件和文件夹(包括子文件夹)拉入字符向量
#仅保留以“.R”或“.R”结尾的文件

r、 脚本除了其他重要的答案之外,
函数还有一个
chdir
参数,它将临时将工作目录更改为源文件所在的目录


一个选项是使用
list.files
和/或其他工具为每个脚本文件创建一个带有文件名(包括路径)的向量。然后
source
每个文件,让
source
chdir
为您设置工作目录。

为什么要在每个文件夹中复制相同的脚本,为什么需要设置工作目录?您想要实现什么?为什么不只使用一个脚本并为每个文件夹执行其内容?通过循环说?嗨,罗兰和塞巴斯蒂安!这只是因为我从一个非常大的矩阵开始(大约2.8G)所以我把它分成子文件夹,在每个文件夹中运行相同的脚本,因为我必须在文件上做同样的操作。你可能对<代码>模式> /Cord>参数感兴趣到<代码>列表。文件< /代码>。如果OP想要循环文件夹,并将工作目录设置到它们,他们可能会考虑<代码> List.Drs。(recursive=FALSE)
如果它们都是一级深度。嗨,Antony,是的,这正是我或多或少想要的。你可能还需要
chdir=T
中的
source
嗨!是的,我运行一个.sh脚本,调用一个.bash脚本来运行所有的.R脚本,因为我正在处理集群。