Установленный пакет R github не включает R / sysdata.Rda - PullRequest
1 голос
/ 17 июня 2020

У меня есть пакет 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 , но ни один из них не имеет принятого ответа. И, надеюсь, мой пример достаточно воспроизводим, чтобы другие могли устранить неполадки.

EDIT

Я только что заметил при установке, что получаю сообщение об ошибке

   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

Создано 17.06.2020 пакетом REPEX (v0.3.0)

1 Ответ

1 голос
/ 17 июня 2020

Дело имеет значение! Файл должен называться sysdata.rda, а не sysdata.Rda.

Я обнаружил, что раньше я сохранял данные как save(ethnic05, filename = "sysdata.Rda"), а затем изменил их на usethis::use_data(ethnic05, internal = TRUE). usethis::use_data сохранен поверх предыдущего файла, но не исправляет регистр расширения. Мне пришлось удалить sysdata.Rda, зафиксировать и pu sh в github, прежде чем восстановить правильный sysdata.rda.

Как указано в разделе 1.1.5 документа https://cran.r-project.org/doc/manuals/r-release/R-exts.html,

"Подкаталог R содержит только файлы кода R. Устанавливаемые файлы кода должны .. .имеет одно из расширений13 .R, .S, .q, .r или .s. ... Допускаются два исключения: если подкаталог R содержит файл sysdata.rda.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...