web-dev-qa-db-fra.com

R: 2 fonctions avec le même nom dans 2 packages différents

J'ai besoin de charger dans des packages R: tseries et chron

Les deux ont une fonction nommée is.weekend

J'ai toujours dans mon environnement la fonction du deuxième paquet que j'ai chargé.

Comment puis-je toujours accéder à la fonction depuis, disons, chron?

58
RockScience

Vous avez probablement déjà remarqué que l'ordre de chargement des packages fait une différence, c'est-à-dire que le package qui est chargé en dernier masquera les fonctions des packages chargés plus tôt.

Pour spécifier le package que vous souhaitez utiliser, la syntaxe est la suivante:

chron::is.weekend()
tseries::is.weekend()

En d'autres termes, utilisez packagename::functionname()

De plus, si vous savez que vous voudrez toujours utiliser la fonction dans chron, vous pouvez définir votre propre fonction comme suit:

is.weekend <- chron::is.weekend    #EDIT
79
Andrie
library(chron)
is.weekend.chron <- is.weekend
library(tseries)

vous pouvez alors appeler is.weekend pour la version tseries ou is.weekend.chron pour la version chron

4
jberg