如何解决如何在R包中包含原始数据
我正在为课程Building R Packages做最后的作业。
在此作业中,我们需要基于讲师提供的一些示例函数创建一个R包。我们需要组织和记录该软件包,然后使其在GitHub上可用。我的软件包称为FARS
,并且已经在此GitHub repo中可用。
我无法在软件包中提供原始数据。在按照课程阅读材料以及本书Building R Packages的第14.3章中提供的说明进行操作之后,仍无法识别文件。
到目前为止我做了什么?
-
在these steps之后准备了软件包的所有文档,包括
roxygen2
标签,DESCRIPTION
,README.Md
和vignette
,除了提供的说明外在提到的阅读和书籍中; -
在程序包的目录中创建了一个名为
inst/extdata
的子目录; -
将所有三个示例文件(
.csv.bz2
)和原始数据复制到inst/extdata
; -
使用
testthat
; -
安装了我的
FARS
软件包。
现在,我正在尝试安装软件包后检查其中一个文件是否可用:
system.file("extdata","accident_2013.csv.bz2",package = "FARS",mustWork = TRUE)
我收到一条错误消息:
Error in system.file("extdata",:
no file found
这些数据文件必须随包装一起提供,因此插图中提供的示例可以正常工作。
解决方法
这是一个“真实的”示例,使用了我最近编写的一个简单程序包。
我在构建目录中有一个“数据”目录。
编辑为了澄清在R-exts中发现的注释,目录树packagename/inst/extdata
用于通过指定目录路径来直接调用函数调用的数据。由于要将数据加载到工作区中,请使用data
目录。
我的“数据”目录包含一个名为preciseNumbersAsChar.r
的文件。该文件包含诸如
charE <- {long number string}
如果您阅读了命令data
的帮助页面,它说明以.r
结尾的文件在被调用时是source
。
library(FunWithNumbers)
data('preciseNumbersAsChar') #works
这就是说,已定义的对象现在在我的环境中。
由于不同文件类型的处理方式略有不同,因此值得详细阅读data
的帮助页面。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。