Ich versuche zu testen, ob eine bestimmte Variable oder Funktion in einem Paket vorhanden ist. Angenommen, ich möchte testen, ob eine Funktion namens plot
im Paket 'graphics' vorhanden ist.Sehen Sie, ob eine Variable/Funktion in einem Paket existiert?
Die folgenden Tests, ob eine Funktion plot
vorhanden ist, aber nicht das, was Paket es herkommt:
exists('plot', mode='function')
Oder ich, dass etwas in dem graphics
Paket besteht genannt testen plot
, aber mir nicht sagen, ob es ist eine Funktion:
'plot' %in% ls('package:graphics')
gibt es eine nette Art und Weise „ist ein Objekt namens X existiert in Paket Y Mode Z“ zu fragen? (Im Grunde kann ich beschränken exists
auf ein bestimmtes Paket?)
(Ja, ich die beiden oben genannten Linien zu ersten Test kombinieren, dass plot
in graphics
ist und dann für den Modus von plot
fragen, aber was ist, wenn ich hatte ? meine eigene Funktion plot
graphics::plot
maskieren kann ich dann der Ausgabe von exists('plot', mode='function')
vertrauen)
Hintergrund: das Schreiben von Tests für ein Paket von mir und will, dass die verschiedenen Funktionen testen, exportiert werden. Ich benutze das Paket testthat
, das Tests in einer Umgebung ausführt, in der ich alle internen Funktionen des Pakets sehen kann, und die von exists('myfunction', mode='function')
zurückgegeben wurden, true zurück, aber ich habe tatsächlich vergessen, myfunction
zu exportieren. Ich möchte testen, dass verschiedene Funktionen exportiert werden.
Dies ist im Zusammenhang mit dieser [Frage] (http://stackoverflow.com/ Fragen/14430728/Finde-Funktionen-mit-spezifischen-Argumente/14430885 # 14430885) – agstudy