繁体   English   中英

R Packaging中的inst和extdata文件夹

[英]inst and extdata folders in R Packaging

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

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

data子目录用于数据文件,可以通过延迟加载或使用data()进行加载。 (选择是通过DESCRIPTION文件中的“ LazyData”字段进行的:默认为不这样做。)不应将其用于程序包所需的其他数据文件,并且约定已发展为使用目录inst /此类文件的extdata。

因此,我已将所有原始数据移到该文件夹​​中,但是当我生成并重新加载程序包,然后尝试使用(例如)使用函数访问数据时:

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+

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

但是,它看起来确实像是在package目录中有一个名为/extdata的文件夹,其中包含文件(生成后和安装)。 /inst文件夹发生了什么事?

/ inst文件夹中的所有内容是否都放入包的/中?

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

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

现在, fpath将在HD上具有文件的绝对路径。

你们俩都非常亲密,基本上都拥有这个。 “ Writing R Extensions”的正式参考是:

1.1.3包子目录

[...]

inst子目录的内容将递归复制到安装目录。 inst子目录不应干扰R使用的子目录(当前, RdatademoexeclibsmanhelphtmlMeta ,而较早的版本则使用latexR-ex )。 inst的复制是在src构建之后进行的,因此它的Makefile可以创建要安装的文件。 在R 2.12.2之前,这些文件已使用包源中的权限安装在POSIX平台上,因此应注意确保这些文件的限制不是太严格: R CMD build将进行适当的调整。 要排除安装文件,可以在顶级源目录的.Rinstignore文件中指定一列排除模式。 这些模式应该是类似于Perl的正则表达式(有关详细信息,请参见R中的regexp帮助),每行一个,以与文件和目录路径进行匹配(10),例如doc/.*[.]png$会根据(小写)扩展名排除inst/doc的所有PNG文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM