在R中设置相对输出目录
我有一个R脚本,它从多个xlsx文件中读取数据,将它们转换为数据帧,然后根据数据帧的行值在我的计算机上的目录中创建文件夹。我在代码开头设置了主目录,如下所示:在R中设置相对输出目录,r,R,我有一个R脚本,它从多个xlsx文件中读取数据,将它们转换为数据帧,然后根据数据帧的行值在我的计算机上的目录中创建文件夹。我在代码开头设置了主目录,如下所示: choose.dir(getwd(),“选择合适的文件夹”) 以及创建文件夹的输出目录,如下所示: pth您可以使用相对路径说明符来实现这一点。例如: getwd() [1] "C:/Users/Uwe/Documents/Rdevel/coverage" setwd("../stackoverflow/") # .. means g
choose.dir(getwd(),“选择合适的文件夹”)
以及创建文件夹的输出目录,如下所示:
pth您可以使用相对路径说明符来实现这一点。例如:
getwd()
[1] "C:/Users/Uwe/Documents/Rdevel/coverage"
setwd("../stackoverflow/") # .. means go up one directory level
getwd()
[1] "C:/Users/Uwe/Documents/Rdevel/stackoverflow"
setwd("../..") # go up two levels
getwd()
[1] "C:/Users/Uwe/Documents"
这也适用于unix
顺便说一句:
表示实际目录。所以
getwd()
[1] "C:/Users/Uwe/Documents"
setwd("./Rdevel/") # . denotes actual directory
getwd()
[1] "C:/Users/Uwe/Documents/Rdevel"
相当于
getwd()
[1] "C:/Users/Uwe/Documents"
setwd("Rdevel")
getwd()
[1] "C:/Users/Uwe/Documents/Rdevel"
您可以使用home目录(存储为环境变量home,可由R通过Sys.getenv(“home”)
访问),并通过pth Denise设置相对于该home路径的路径,谢谢,但是Sys.getenv(“home”)
返回“C:/Users/Dev/Documents”,我没有显示任何输出。此外,在其他计算机中,输出可能需要显示在不同的目录中,而不一定显示在~/Desktop/test/
中。我是否可以使用更通用的语句,以便每次有人运行它时,他们都可以选择输出数据的位置?我不确定您到底在开发什么,但您可以将脚本编写为函数,将本地目录的路径作为函数输入,并通过MyFunction在每台机器上调用该函数(“path/to/local/directory/”
。如果这不合适,可以设置不同的环境变量local\u directory
(或者以您想要的方式调用它)并以与脚本内的主目录相同的方式访问它。缺点是,在能够运行Coder之前,必须在每台计算机上设置此环境变量。很好,但每当我在不同的计算机上运行它时,我都必须编辑代码并更改setwd()
手动,对吗?我用它来选择主目录:choose.dir(getwd(),“选择合适的文件夹”)
。我想对我的输出路径做同样的操作,这样会弹出一个对话窗口,我可以选择显示结果的位置。我使用了pth,您应该编辑Q并在那里添加附加信息。在pthchr“C:\\Users\\Dev\\Desktop\\test”之后
getwd()
[1] "C:/Users/Uwe/Documents"
setwd("Rdevel")
getwd()
[1] "C:/Users/Uwe/Documents/Rdevel"