首页 > 解决方案 > 动态确定当前包的名称

问题描述

我正在开发一个R包,并且在我的一个函数中我想访问文件夹中的inst/文件(在源代码中)。最终安装此软件包时,其中的文件夹inst/将移动到软件包的基本目录。

因此,如果我想访问inst/foo/bar.css我会使用的文件

myfun <- function() {
   ## ...
   system.file("foo", "bar.css", package = "mypackagename")
   ## ...
}

但是,这需要对包的名称进行硬编码。如果出于某种原因,包的名称稍后更改,我也需要更改这些值。

我可以想到以下解决方法:

myfun <- function() {
   ## ...
   system.file("foo", "bar.css", package = environmentName(parent.env(environment())))
   ## ...
}

但我不确定这是否适用于所有情况。

因此,我的问题是,访问同一包中的文件的最可靠方法是什么?

标签: rpackagedevtools

解决方案


推荐阅读