确定 R 中当前文件的位置以包含同一目录中的文件?

问题描述 投票:0回答:2

我希望能够

source()
一个在同一目录中包含不同文件的文件,但我不想在运行此文件之前从 R 提示符中设置工作目录:

> getwd()
[1] "/Users/myser"
> source("/Users/myuser/workspace/myproject/myfile.r")

在 /Users/myuser/workspace/myproject 中,会有 myfile.r 和 my-utils.r。 myfile.r 从其中调用

source('my-utils.r')

其他编程语言可以确定当前文件的路径。 R有类似的东西吗?示例:

cur_dir <- sys.get_current_file_path()
source(file.path(cur_dir, "my-utils.r"))
r filesystems system
2个回答
11
投票
source("/Users/myuser/workspace/myproject/my-utils.r", chdir=TRUE)

chdir
选项设置为true且源文件参数为完整路径时,在获取文件时将使用文件目录作为工作目录。

注意:

cur_dir <- sys.get_current_file_path()
没有多大意义,因为路径名不是唯一的。


0
投票

我知道现在已经非常晚了,但是对于未来的人来说,我在获取脚本来源的目录时遇到了这个答案

我认为您应该能够在不安装额外软件包的情况下执行此操作:

cur_dir = utils::getSrcDirectory(function(){})[1]
source(file.path(cur_dir, 'my-utils.R'))
© www.soinside.com 2019 - 2024. All rights reserved.