【发布时间】:2021-08-26 06:39:52
【问题描述】:
使用 python,如果我需要当前运行脚本的上下文中的绝对路径,我需要做的就是在该脚本的代码中添加以下内容:
import os
os.path.abspath(__file__)
这非常有用,因为有了绝对路径,我可以使用 os.path.join 为我的项目组件(在项目目录树内)形成新的绝对路径,更有趣的是,无论如何,一切都将继续正常工作包目录被移动到哪里。
我需要使用 R 编程来实现同样的事情,即获取当前正在运行的 R 脚本的绝对路径(= 其文件在磁盘上的绝对路径)。但是尝试在 R 中做同样的事情是相当具有挑战性的,至少对我作为 R 的初学者来说是这样。
经过大量谷歌搜索后,我尝试使用 reticulate 包从 R 调用 Python,但 __file__ 在那里不可用,然后我发现 Stackoverflow 上的一些线程建议使用正在运行的 Stack 和其他建议使用的normalizePath。但是,当整个项目包从一个目录转移到另一个目录时,这些都不适合我。
因此,我想知道例如您是否有以下文件/目录树
base_dir ( = /home/usr1/apps/R/base_dir)
|
|
|___ myscript.R (this is my R script to be run)
|___ data (this is a directory)
|___ sql (this is a directory)
是否有任何解决方案允许在 myscript.R 的代码中添加一些内容,以便在脚本中程序始终可以知道基本目录是 /home/usr1/apps/R/base_dir,如果稍后将此基本目录移动到另一个目录,那么就会有无需更改代码,程序就能正确找到新的基目录?
【问题讨论】:
标签: r