Domanda

Quando ho caricato il pacchetto debug per eseguire il debug di uno script con oggetti zoo, ho problemi: funzione index da zoo è stata mascherata dal pacchetto debug.Come posso smascherare index?In generale, come affrontare questi nomi di collisione dei problemi?Non usiamo solo il pacchetto debug con `zoo '?

È stato utile?

Soluzione

I simboli esportati sono sempre identificabili con l'operatore :::

zoo::index
.

Le funzioni nascoste non hanno dichiarato che nello spazio dei nomi possono ancora essere accessibili utilizzando ::: (Triple-Colon), ed esempio sarebbe

zoo:::.onLoad
.

che puoi vedere anche se non viene esportato.

Altri suggerimenti

È possibile scaricare il pacchetto che ha funzioni mascherato e quindi ricaricarlo.Ritroverà la precedenza nel percorso di ricerca:

unloadNamespace("zoo")
library("zoo")
.

In futuro, se si desidera caricare un pacchetto, evitandolo di mascherare altre funzioni, è possibile specificare la sua posizione nel percorso di ricerca con un numero elevato arbitrario:

library("debug", pos = .Machine$integer.max)
.

è solo mascherato a te ma non è mascherato allo zoo, quindi quando una funzione zoo cerca di utilizzare l'indice, troverà ancora il proprio indice.

Zoo ha anche un metodo Time.Zoo Quindi se Z è un oggetto Zoo puoi usare il tempo (Z) al posto dell'indice (Z).

Alla fine puoi sempre fare riferimento allo zoo :: indice per assicurarti di ottenere quello in zoo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top