R: l'appel d'une fonction à partir d'un espace de noms
Je suis en train de modifier la fonctionnalité de quelques commandes dans un emballage dans R. Il est assez facile de voir la source de la commande. Toutefois, les appels de fonction autres fonctions qui sont dans le paquet de l'espace de noms. Ces fonctions ne sont pas les objets à exporter. Alors, comment puis-je y accéder?
spécifiques, par exemple:
Comment pourrais-je accéder à la asCall() fonction qui est utilisée dans la copule::rmvdc?
require(copula)
copula::rmvdc
getAnywhere("asCall")
donc as.Call()
existe dans la copule, mais comment puis-je y avoir accès?
> copula::asCall
Error: 'asCall' is not an exported object from 'namespace:copula'
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
C'était déjà répondu sur R-help. Cette fonction n'a pas été exporté dans le paquet de l'espace de noms, vous devrez utiliser le
:::
opérateur à la place. Généralement, les fonctions ne sont pas exportés quand ils ne sont pas destinés à un usage général (par exemple, vous n'avez pas besoin de les documenter dans ce cas).Lors de l'élaboration, ?assignInNamespace est très utile.
Cela vous permet d'injecter une nouvelle copie d'un non-fonction exportée dans un paquet de noms.
Ce serait bien si R message d'erreur a été des plus utiles. Au lieu de:
Pourquoi ne pas ajouter:
:::
opérateur de même qu'il existe.:::
s'installe à vous de faire les modifications pkg fonctions qui utilisent des objets internes, en fonction de vos besoins. Ce n'est pas l'esprit de l'open source?