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