Вызовы сторонних функций в другой пакет ПРИМЕЧАНИЕ.
Я готовлю пакет R для отправки в CRAN. Проверка CMD дает мне следующее ПРИМЕЧАНИЕ:
Вызовы сторонних функций в другой пакет:
.Fortran ("cinc",... PACKAGE = "cmprsk")
.Fortran ("crstm",... PACKAGE = "cmprsk")
См. Главу "Интерфейс системы и иностранного языка" руководства "Writing R Extensions".
Как мне избавиться от этой записки? Я не могу найти ответ ни из чтения главы, ни из поиска в Интернете. Может быть, мне не хватает чего-то очень простого. Я отправляю пакет ранее для R2.x с тем же кодом и никогда не имею этой проблемы. Это что-то новое для R3.x.
1 ответ
Предупреждение указывает вам на главу " Интерфейс системы и иностранный язык" руководства Writing R Extensions, в котором конкретно сказано (в разделе " Написание переносимых пакетов "):
Невозможно вызывать скомпилированный код в R или других пакетах через.Internal, .C, .Fortran, .Call или.External, поскольку такие интерфейсы могут быть изменены без предварительного уведомления и, вероятно, приведут к тому, что ваш код завершит процесс R.
Вы можете сказать, что вам нравится в сопровождающих CRAN, но они редко ошибаются в технических вопросах, а причины почти всегда где-то документируются.
Некоторые из ваших вариантов:
- если вы не хотите отправлять в CRAN, вы можете проигнорировать ПРИМЕЧАНИЕ.
- Вы можете скопировать код Fortran (или C) из другого пакета и включить его в свой собственный (возможно, вам нужно быть осторожным с лицензией, и, безусловно, было бы вежливо попросить разрешения)
- вы могли бы попросить сопровождающих другого пакета внедрить и экспортировать оболочку thin R вокруг их низкоуровневого кода