Как наследовать пакет или класс в R? - PullRequest
1 голос
/ 02 апреля 2012

Я использую пакет, в котором я хочу добавить дополнительную опцию к своей основной функции и соответственно изменить содержимое основной функции. Кроме этого, я хотел бы использовать пакет, как он есть сейчас.

Каков наилучший способ сделать это? Любые ссылки будут оценены.

Ответы [ 2 ]

2 голосов
/ 02 апреля 2012

Если вы считаете, что ваши изменения необходимы и остальному миру:

  1. Свяжитесь с сопровождающим (packageDescription ("pkgName") $ Maintainer),
  2. объясните ваши изменения и
  3. прикрепить патчи для кода и документации к электронному письму?

Если только вам самим нужны изменения / вы хотите попробовать их на месте:

  • ? fix
  • см. Также ? assignInNamespace
  • получите исходный код (пакеты в CRAN должны быть FOSS, но лучше прочитайте лицензию), внесите изменения и установите этот пакет локально.

  • , если вам нужно вставить немного кода (например, дополнительный оператор вывода): ? trace

0 голосов
/ 02 апреля 2012

Это то, что я сделал.

  1. Создать другую функцию, скопированную из основной функции данного пакета.
  2. Измените функцию, как вы хотите.
  3. Если вам нужно использовать внутреннюю функцию пакета (или класса), используйте <package name>::: перед именем функции.
  4. Сделайте ваш результат унаследованным от класса, который вы хотите.

Например, class(results) <- c("rpart","nnet")

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