首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当前工作目录中的setwd()

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

Stack Overflow用户
提问于 2013-02-22 22:30:31
回答 3查看 24.4K关注 0票数 6

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

代码语言:javascript
复制
setwd("/User/myname/./")

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-22 22:46:39

这个怎么样?

代码语言:javascript
复制
# 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 )
票数 7
EN

Stack Overflow用户

发布于 2013-02-22 22:42:46

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

就我个人而言,我可能会写一个shell脚本(或操作系统的等价物)来做这件事,而不是用R。

代码语言:javascript
复制
for dir in /directoriesLocation/*/
do
    cat $dir/scriptName.R | R --slave --args $arg1 $arg2
done

其中,$dir是包含R script scriptName.R的所有目录的位置。R

票数 3
EN

Stack Overflow用户

发布于 2013-02-23 01:17:49

除了其他很好的答案之外,source函数还有一个chdir参数,该参数将临时将工作目录更改为源文件所在的目录。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15026463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档