1

我有一个 R github 包,我可以使用 devtools::install_github("jwilliman/ethnicNZ")(或remotes::install_github)“成功”安装。在 github 上,包包含使用命令保存为“R/sysdata.Rda”的内部数据usethis::use_data(ethnic05, internal = TRUE)

但是,安装后,“../Library/ethnicNZ/R”文件夹中缺少文件“sysdata.rdb”和“sysdata.rdx”,并且ethnicNZ::find_data()从包中运行命令时出现错误Error in ethnicNZ::find_data() : object 'ethnic05' not found。(这些文件存在,如果我直接从本地 git 安装包,则该命令有效)。

这可能与在包函数中访问 sysdata.rdaR Package Build/Install Error: "object not found" 类似的问题,即使我在 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

reprex 包(v0.3.0)于 2020-06-17 创建

4

1 回答 1

1

案件很重要!该文件必须称为“sysdata.rda”而不是“sysdata.Rda”。

我发现我之前将数据保存为save(ethnic05, filename = "sysdata.Rda"),然后更改为使用usethis::use_data(ethnic05, internal = TRUE)usethis::use_data保存在以前的文件上,但没有更正扩展名的大小写。在恢复正确的 sysdata.rda 之前,我必须删除“sysdata.Rda”,提交并推送到 github。

如https://cran.r-project.org/doc/manuals/r-release/R-exts.html第 1.1.5 节所列,

“R 子目录仅包含 R 代码文件。要安装的代码文件必须......具有扩展名 13 .R、.S、.q、.r 或 .s 之一......允许有两个例外:如果 R 子目录包含文件 sysdata.rda。

于 2020-06-16T22:58:38.653 回答