Функции добавления и редактирования R-пакета - PullRequest
0 голосов
/ 11 июля 2020

Цель: Я загрузил R-пакет «AB C» из CRAN и хотел бы достичь двух вещей:

  1. отредактировать существующую функцию ex_fct of этот R-пакет.
  2. добавить новую функцию nw_fct к этому R-пакету.

, и эти настройки будут постоянными.

Ситуация : Есть хорошие источники, которые объясняют первый аспект того, как редактировать / изменять / перезаписывать существующую функцию R-пакета здесь , но попытка следовать этому подходу кажется не работать для добавления новых функций в пакет.

Вопрос : Следовательно, я sh добавляю функцию nw_fct как скрытую функцию в этот пакет, чтобы его можно было вызвать через ABC:::nw_fct. Как это может быть сделано? Есть ли способ одновременно решить оба аспекта?

1 Ответ

0 голосов
/ 17 июля 2020

Решение : Следующие шаги помогли мне (на Ma c) одновременно решить оба аспекта:

  1. Я загрузил пакет AB C как tar файл из репозитория CRAN (файл: «ABC_1.1-2.tar»). После открытия файла, распаковав его двойным щелчком, он показывает типичную структуру пакетов (метаданные, виньетки, пространство имен и т. Д. c.), Как описано в ссылке, предоставленной alistaire (см. здесь - очень полезно, большое спасибо).
  2. Все соответствующие файлы с различными алгоритмами (например, файлы «al go -AR», «al go -BR») содержатся в «R» - папка и внутри файла «al go -AR» я нашел функцию ex_fct. Я открыл этот файл в R-Studio, настроил функцию ex_fct по своему усмотрению и добавил nw_fct также в этот файл (поскольку функции ex_fct и nw_fct связаны) и сохранил его под тем же именем, то есть как «ал go -АР». В результате у меня теперь есть обновленная папка пакета, которая содержит мою обновленную версию файла «al go -AR».
  3. Наконец, я использовал функцию build пакета devtools, чтобы создайте один связанный файл ".tar" (скажем, файл "ABC_new.tar") из этой обновленной папки пакета. В частности, можно просто использовать: build(pkg= "path1/ABC_1.1-2", path= "~path2/ABC_new.tar", manual=F, binary=F), где path1 переходит в папку с обновленным пакетом, а path2 указывает, где будет храниться связанный пакет. Примечание: поскольку я сделал это на новой машине, этот шаг не сработал сразу, но потребовался для первой установки, например, TeXLive, Java приложений, а также нескольких пакетов, требуемых пакетом AB C (просто следуйте ошибке R
  4. Наконец, я смог (навсегда) установить обновленный архивный файл пакета в RStudio через: install.packages(“~path2/ABC_new.tar", repos = NULL, type=“source”)

Если вы используете sh, чтобы отменить эти изменения и снова получить исходный пакет, вы можете просто удалить пакет и переустановить исходный из CRAN.

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