Como desmascarar uma função no R, devido a conflitos de nome no searchpath
-
15-09-2020 - |
Pergunta
Quando eu carregado pacote debug
para depurar um script com zoo
objetos, eu tenho problemas:função index
a partir de zoo
tem mascarado por debug
pacote.Como posso desmascarar index
?Em geral, como lidar com estas nome colidindo problemas?Nós apenas não use debug
pacote com `zoo'?
Solução
Símbolos exportados são sempre identificáveis com o ::
operador:
zoo::index
Oculto funções não declaradas no espaço de nomes pode ainda ser acedido através de :::
(triple-e-vírgula), e exemplo seria
zoo:::.onLoad
o que você pode ver, mesmo que ele não é exportado.
Outras dicas
Você pode descarregar o pacote que tem mascarado funções e, em seguida, carregá-lo.Ele vai recuperar a precedência no searchpath:
unloadNamespace("zoo")
library("zoo")
No futuro, se você deseja carregar um pacote, enquanto impedindo-a de mascarar outras funções, você pode especificar a sua posição no caminho de pesquisa com um número arbitrariamente grande:
library("debug", pos = .Machine$integer.max)
Sua única mascarado para você, mas não é mascarado para o zoológico por isso, quando um zoológico função tenta usar o index ainda vai encontrar o seu próprio primeiro índice.
o zoo também tem um tempo.zoo método para se z é um zoológico objeto que você pode usar o tempo(z) no lugar de índice(z).
Finalmente, você pode sempre consultar o zoo::índice para se certificar de você chegar a um no zoo.