R打包中的inst和extdata文件夹

R打包中的inst和extdata文件夹,r,package,R,Package,在文档中,R建议将原始数据文件(不是Rdata或Rda)放在inst/extdata/ 从中的第一段开始: 数据子目录用于数据文件,可以是 通过延迟加载或使用data()加载。(选择由 描述文件中的“LazyData”字段:默认为notdo 因此。)它不应用于包所需的其他数据文件, 而且该约定已经发展到使用目录inst/extdata来实现这种功能 档案 因此,我已将所有原始数据移动到此文件夹中,但当我构建并重新加载包,然后尝试使用(例如)访问函数中的数据时: 我收到“无法打开文件”错误 但是,

在文档中,R建议将原始数据文件(不是Rdata或Rda)放在
inst/extdata/

从中的第一段开始:

数据子目录用于数据文件,可以是 通过延迟加载或使用data()加载。(选择由 描述文件中的“LazyData”字段:默认为notdo 因此。)它不应用于包所需的其他数据文件, 而且该约定已经发展到使用目录inst/extdata来实现这种功能 档案

因此,我已将所有原始数据移动到此文件夹中,但当我构建并重新加载包,然后尝试使用(例如)访问函数中的数据时:

我收到“无法打开文件”错误

但是,在包目录中确实有一个名为
/extdata
的文件夹,其中包含文件(编译和安装后)。
/inst
文件夹发生了什么变化


/inst文件夹中的所有内容是否都被推送到包的
/

你们俩关系很好,基本上都有这个。“编写R扩展”的正式参考是:

1.1.3包子目录

[……]

inst
子目录的内容将被递归复制 到安装目录。
inst
的子目录不应 干扰R使用的设备(目前,
R
数据
演示
exec
libs
man
help
html
Meta
以及早期版本 使用了乳胶,
R-ex
)。
inst
的复制发生在
src
它的
Makefile
可以创建要安装的文件。之前 在R 2.12.2中,这些文件安装在POSIX平台上,并具有包源中的权限,因此应注意确保 这些限制并不太严格:
R CMD build
将使 调整。要从安装中排除文件,可以指定 顶层文件
.Rinstignore
中排除模式的列表 源目录。这些模式应该像常规模式一样是Perl 表达式(有关详细信息,请参阅R中的
regexp
帮助), 每行一个,根据文件和目录路径匹配(10), e、 g.
doc/*[.]png$
将根据 (小写)扩展名


比使用
file.path
更有用的是使用
system.file
。安装软件包后,您可以像这样抓取文件:

fpath <- system.file("extdata", "my_raw_data.csv", package="my_package")

fpath/inst文件夹中的所有文件夹在包的顶部目录中都有自己的位置。基本上,/inst中的所有内容都会在顶部目录中结束,因此其中的任何文件夹都会作为它们自己的文件夹结束。但这仅仅是根据经验,我在R exts中找不到任何解释…我只想补充一点,我更喜欢file.path来创建文件路径。您可以/应该使用
system.file
来访问inst folder中的文件谢谢。我试图在文档中搜索“inst”,这很好,但是当你开发它并且不想安装软件包时,你会怎么做呢?
fpath <- system.file("extdata", "my_raw_data.csv", package="my_package")