瞬时和在带包装扩展数据的文件夹(inst and extdata folders in R Pack

2019-06-21 05:42发布

在本文档中,R表明,原始数据文件(未RDATA也不RDA)应该被放置在inst/extdata/

从第一段中: http://cran.r-project.org/doc/manuals/R-exts.html#Data-in-packages

数据子目录是数据文件,或者使用的数据作出通过延迟加载或装载可用()。 (该选择由“LazyData”字段中的描述文件进行:默认是不这样做),它不应该被用于由包所需要的其他数据文件,该公约已经成长为使用目录安装/扩展数据这样的文件。

所以,我提出我的所有原始数据到这个文件夹,但是当我建立和重新加载包,然后尝试用(例如)访问一个函数的数据:

read.csv(file=paste(path.package("my_package"),"/inst/extdata/my_raw_data.csv",sep="")) 
# .path.package is now path.package in R 3.0+

我得到的“无法打开文件”的错误。

但是,它看起来像有一个文件夹,名为/extdata在它包目录与文件(生成后安装)。 发生了什么事到/inst文件夹?

难道一切都在/文件夹研究所将被推入/包的?

Answer 1:

你都是非常接近,基本上是有这个。 从写作R附加软件'的正式引用是:

1.1.3包装子目录

[...]

在内容inst子目录将被递归地复制到安装目录。 的子目录inst不应与那些由R(目前,使用干扰R datademoexeclibsmanhelphtmlMeta ,和早期版本中使用latexR-ex )。 在复印inst后会发生src建所以它Makefile可以创建文件进行安装。 此前于R 2.12.2,该文件安装在与包源的权限POSIX平台,所以应小心,以确保这些都没有太多限制: R CMD build将作出适当的调整。 要排除被安装的文件,可以指定排除的文件模式的列表.Rinstignore在顶级源目录。 这些模式应该是类似Perl的正则表达式(见的帮助regexp中的R为精确的细节),每行一个,对文件和目录路径进行匹配(10),例如doc/.*[.]png$将排除所有PNG文件inst/doc基础上,(小写)扩展。



Answer 2:

除了使用更多有用file.path是使用system.file 。 一旦安装你的包,你可以抓住你的文件,如下所示:

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

fpath现在将对您的高清文件的绝对路径。



文章来源: inst and extdata folders in R Packaging
标签: r package