[英]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使用的子目录(当前,R
,data
,demo
,exec
,libs
,man
,help
,html
和Meta
,而较早的版本则使用latex
,R-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.