Как добавить инфиксную функцию в пакет? - PullRequest
0 голосов
/ 22 января 2019

Я хочу добавить инфиксную функцию в пакет, но %% бросает мне вызов.

Я нашел это решение , но, к сожалению, оно не объясняет, где именно должна быть добавлена ​​строка export("%IN%").Я не получил ничего более умного от этого вопроса.Поскольку этим вопросам пять лет, я решил задать новый вопрос.

Рассмотрим ту же функцию, что и в первом связанном вопросе.

"%IN%" <- function(x, table) x & match(x, table, nomatch = 0) > 0

Обычно я добавляю новую функцию в свой пакетзапись файла <myfun>_function.R в соответствии с этим грубым шаблоном.

#' Title
#'
#' \code{%IN%} does this and that
#' @param x texttext    
#' @param table texttext
#' @return texttext
#' @export
#' @examples
#' 1:5 %IN% 1:3
"%IN%" <- function(x, table) x & match(x, table, nomatch = 0) > 0

Соответственно, я бы сохранил файл с именем "`%IN%`_function.R" в папке R моего каталога пакетов X.

Затем в setwd("./X") я запускаю эти строки кода

library(digest)
R.utils::reassignInPackage("digest", "digest", mydigest)
roxygen2::roxygenize()

(Где я получил mydigest из там ).

В конце втерминал Я создаю пакет с R CMD build X.

Итак, где именно должна быть добавлена ​​строка export("%IN%")?

1 Ответ

0 голосов
/ 22 января 2019

Согласно комментариям, хитрость заключается в следующем:

  1. напишите *.R файл функции как обычно, назовите его произвольным
  2. пробег roxygenize()
  3. в папке пакета отредактируйте сгенерированный файл NAMESPACE, добавив строку export("%IN%") с большим удовольствием от руки
  4. запустить R CMD build <package name> в терминале
  5. возможно, обновить номер версии
  6. установка
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...