我有一个R github软件包,我可以使用devtools::install_github("jwilliman/ethnicNZ")
(或remotes::install_github
("成功"安装。在github上,软件包包含保存为"R/sysdata"的内部数据。Rda' 使用命令usethis::use_data(ethnic05, internal = TRUE)
.
但是,安装后,文件"sysdata.rdb"和"sysdata.rdx"在".."中丢失。/Library/ethnicNZ/R' 文件夹,当从包中运行命令ethnicNZ::find_data()
时,我收到错误Error in ethnicNZ::find_data() : object 'ethnic05' not found
。(这些文件存在,如果我直接从本地 git 安装软件包,该命令有效(。
这可能是一个类似于在包函数中访问 sysdata.rda 和 R 包构建/安装错误的问题:"找不到对象",即使我在 R/sysdata.rda 中有它,但两者都没有公认的答案。希望我的示例具有足够的可重复性,以便其他人进行故障排除。
编辑
我刚刚注意到在安装时出现错误
Subdirectory 'R' contains invalid file names:
'sysdata.Rda'
为什么这是无效的,我怎样才能避免它?
sessionInfo()
#> R version 4.0.0 (2020-04-24)
#> Platform: x86_64-w64-mingw32/x64 (64-bit)
#> Running under: Windows 10 x64 (build 17134)
#>
#> Matrix products: default
#>
#> locale:
#> [1] LC_COLLATE=English_New Zealand.1252 LC_CTYPE=English_New Zealand.1252
#> [3] LC_MONETARY=English_New Zealand.1252 LC_NUMERIC=C
#> [5] LC_TIME=English_New Zealand.1252
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> loaded via a namespace (and not attached):
#> [1] compiler_4.0.0 magrittr_1.5 tools_4.0.0 htmltools_0.4.0
#> [5] yaml_2.2.1 Rcpp_1.0.4.6 stringi_1.4.6 rmarkdown_2.1
#> [9] highr_0.8 knitr_1.28 stringr_1.4.0 xfun_0.14
#> [13] digest_0.6.25 rlang_0.4.6 evaluate_0.14
创建于 2020-06-17 由 reprex 软件包 (v0.3.0(
案例很重要!该文件必须称为"sysdata.rda"而不是"sysdata"。哒��
我发现我以前将数据保存为save(ethnic05, filename = "sysdata.Rda")
,后来改为使用usethis::use_data(ethnic05, internal = TRUE)
。usethis::use_data
保存在以前的文件上,但没有更正扩展名的大小写。我不得不删除"系统数据。Rda',提交并推送到 github,然后再恢复正确的 sysdata.rda。
如 https://cran.r-project.org/doc/manuals/r-release/R-exts.html 第1.1.5节所列,
"R 子目录仅包含 R 代码文件。要安装的代码文件必须...具有扩展名之一13。R, .S, .q, .r, or .s. ...允许两种例外:如果 R 子目录包含文件 sysdata.rda。