Вызовы сторонних функций в другой пакет ПРИМЕЧАНИЕ.

Я готовлю пакет 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 вокруг их низкоуровневого кода
Другие вопросы по тегам