определить функцию в определенном пространстве имен - PullRequest
6 голосов
/ 14 декабря 2011

Я создал пакет «mypackage» (с присоединенным пространством имен «mypackage») В этом пакете есть функция, которую я могу вызвать с помощью

'myfunction'

или

'mypackage::myfunction'

Теперь я хочу заменить myfunction другой версией (обновлено).

Раньше я делал

source(path)

где путь - это путь к файлу, в котором определена обновленная функция myfunction

Теперь я перешел на R 2.14.x, и эта система не работает, потому что, очевидно, R сначала проверяет, есть ли функция в том же пространстве имен, и, если она есть, использует эту, а не другие.

Мой вопрос: как я могу поместить обновленную функцию в то же пространство имен, что и пакет?

1 Ответ

8 голосов
/ 14 декабря 2011

См. ?assignInNamespace.Например,

assignInNamespace("myfunction", foo, "mypackage")

назначит объект foo объекту с именем "myfunction" в пространстве имен "mypackage".foo может быть любым объектом, который вы хотите, даже myfunction, но вам нужно быть осторожным, чтобы вызвать mypackage::myfunction, если у вас также есть myfunction в глобальной среде / рабочей области.

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