When I loaded package debug
to debug a script with zoo
objects, I got trouble: function index
from zoo
got masked by debug
package. How can I unmask index
? In general, how to deal with these name colliding problems? We just do not use debug
package with `zoo'?
views:
77answers:
2
+3
A:
Exported symbols are always identifiable with the ::
operator:
zoo::index
Hidden functions not declared in the namespace can still be accessed using :::
(triple-colon), and example would be
zoo:::.onLoad
which you can see even though it is not exported.
Dirk Eddelbuettel
2010-07-13 21:13:43
On the other hand this is the reason why setting system<-function(){} does not magically make R secure.
mbq
2010-07-13 23:32:25
thanks. I can temperarily set index<-zoo::index to work around this problem without changing my original script. It seems some packages just do not work together.
ahala
2010-07-14 02:10:07
+2
A:
Its only masked to you but its not masked to zoo so when a zoo function tries to use index it will still find its own index first.
zoo also has a time.zoo method so if z is a zoo object you can use time(z) in place of index(z).
Finally you can always refer to zoo::index to make sure you get the one in zoo.
G. Grothendieck
2010-07-14 00:28:19
thanks. time.zoo will work but I dont want to change my original script. And index(zooobject) reports error in my case. Apperently R doesnot know index.zoo should be called on zooobject.
ahala
2010-07-14 02:07:57
If you load zoo after loading debug/mvbutils rather than the other way around then the index in zoo will be the one you get by default rather than the one in debug/mvbutils.
G. Grothendieck
2010-07-14 09:03:58