我正在做类(class)的期末作业Building R Packages .
在本次作业中,我们需要根据讲师提供的一些示例函数创建一个 R 包。我们需要组织并记录该包,然后将其发布在 GitHub 上。我的软件包名为 FARS
,并且已在 GitHub repo 中提供。 .
我无法通过包提供原始数据。按照类(class)阅读 Material 以及本书 Building R Packages 第 14.3 章中提供的说明进行操作后,文件仍然无法被识别。
到目前为止我做了什么?
准备好软件包的所有文档,包括
roxygen2
标签、DESCRIPTION
、README.Md
和vignette
,以下 these steps除了所提到的阅读 Material 和书中提供的说明之外;在包目录中创建了一个名为
inst/extdata
的子目录;将包含原始数据的所有三个示例文件 (
.csv.bz2
) 复制到inst/extdata
;使用
testthat
测试了函数;安装了我的
FARS
软件包。
现在我尝试检查安装包后其中一个文件是否可用:
system.file("extdata", "accident_2013.csv.bz2",
package = "FARS",
mustWork = TRUE)
我收到一条错误消息:
Error in system.file("extdata", "accident_2013.csv.bz2", package = "FARS", :
no file found
这些数据文件需要随包一起提供,以便插图中提供的示例正常工作。
最佳答案
这是一个“现实生活”的例子,使用我最近编写的一个简单的包。
我在构建目录中有一个“数据”目录。
编辑 为了澄清 R-exts 中发现的注释,目录树 packagename/inst/extdata
适用于您的函数通过指定目录路径直接调用的数据。由于您想要将数据加载到工作区中,因此请使用 data
目录。
我的“数据”目录包含一个名为 preciseNumbersAsChar.r
的文件。该文件包含诸如
charE <- {long number string}
如果您阅读命令 data
的帮助页面,它解释了以 .r
结尾的文件是source
d 被调用时。
library(FunWithNumbers)
data('preciseNumbersAsChar') #works
也就是说,定义的对象现在在我的环境中。
值得阅读 data
的帮助页面详细信息,因为不同的文件类型的处理方式略有不同。
关于r - 如何将原始数据包含在 R 包中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64664009/