C -уровневая функция для невидимого возврата в R? - PullRequest
0 голосов
/ 01 мая 2020

Существует ли функция C -уровня (из R 'C API) для невидимого возврата в R?

Я знаю, что invisible() можно вызывать из кода R. Но мне было интересно, существует ли что-то аналогичное на C -уровне.

1 Ответ

1 голос
/ 01 мая 2020

Вы могли бы предположительно вызвать invisible() из вашего C кода (создавая выражение и оценивая его), но, поскольку весь пользовательский код должен go через функцию R, чтобы добраться до C, почему бы и нет просто вызовите invisible() на уровне R, например,

myFun <- function(...) {
   invisible(.Call(...))
}

В ответ на некоторые комментарии: большинство функций, используемых в R (включая все C функции, соответствующие .Primitive с, насколько я знать) не являются частью API и не должны вызываться из вашего кода. Безопасно вызывать документированные функции только из руководства Writing R. Extensions.

Несколько пакетов go помимо функций API из-за необходимости в функциональности, которой нет. Это, вероятно, сделает ваш пакет неподходящим для CRAN, если вы не сможете убедить CRAN, что у вас есть очень веская причина для этого, и что вы быстро отреагируете на любые изменения недокументированного внутреннего документа.

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