Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R(Mac)中创建bash文件_R_Bash_Macos - Fatal编程技术网

如何在R(Mac)中创建bash文件

如何在R(Mac)中创建bash文件,r,bash,macos,R,Bash,Macos,在R for Mac中,我试图创建一个bash文件,通过在R外双击,在R内的特定路径目录集中创建文件夹。文件夹的数量应等于R内的向量集。以下代码在R for windows中有效,但仅替换扩展名.bat to.sh似乎不起作用 vec <- c(1,1,1) bat<-matrix(nrow=length(vec),ncol=2,0) for (i in 1:length(vec)){ bat[i,1]<-"md"

在R for Mac中,我试图创建一个bash文件,通过在R外双击,在R内的特定路径目录集中创建文件夹。文件夹的数量应等于R内的向量集。以下代码在R for windows中有效,但仅替换扩展名.bat to.sh似乎不起作用

vec <- c(1,1,1)
bat<-matrix(nrow=length(vec),ncol=2,0)
        for (i in 1:length(vec)){
            bat[i,1]<-"md"
            bat[i,2]<-gsub("/","/",paste(saveloc,"/",vec[i],sep=""),fixed=T)
        }
        write.table(bat,paste(saveloc,"/","individual names.bat",sep=""),sep=" ",dec=dec,row.names=F,col.names=F,quote=2)
Saveloc是路径目录。有没有办法在mac上实现这一点


非常感谢您的帮助。

以下是您如何在R中不使用shell脚本来完成此操作:

# make up a small nested folder structure
dirsToCreate <- cbind(
  rep("top", 6), 
  rep(c("middle1", "middle2"), each=3), 
  rep(c("bottom1", "bottom2", "bottom3"), 2)
)
dirsToCreate <- apply(
  dirsToCreate, 1, function(x) paste(x, collapse="/"))
# here are the folders we will create
dirsToCreate
[1] "top/middle1/bottom1" "top/middle1/bottom2"
[3] "top/middle1/bottom3" "top/middle2/bottom1"
[5] "top/middle2/bottom2" "top/middle2/bottom3"
# now actual creation, in a loop
for (d in dirsToCreate) {
  dir.create(d, recursive = TRUE)
}

是否绝对需要创建shell脚本?因为您可以使用R来创建目录,请参阅dir.createNot needed,这正是我所知道的,至少对windows是有效的。我会看一看你的建议。我不确定如何完成你的过程,目前看起来有点模糊,但我非常确定你最终需要将bash脚本标记为可执行文件。您应该能够在Unix命令中搜索如何执行此操作。如何在不使用“sh”或“bash”命令的情况下运行shell脚本@kgolyaev您的解决方案似乎只使用一个简单的for循环,遍历向量并在指定的文件夹中创建子文件夹。你能写一个正式的答案吗?这样我就可以把这个问题标记为已回答了?