2014-10-25 10 views
9

Sto scrivendo un pacchetto R e voglio importare la funzione generica forecast dal pacchetto previsione. Il mio pacchetto fornisce il metodo forecast.myobj. Ho il forecast nel Imports: nel file del pacchetto DESCRIPTION e la mia definizione di funzione è la seguente:Come importare una funzione R da un altro pacchetto in modo tale che sia disponibile per l'utente?

##' @export 
forecast.myobj <- function(x) { 

} 

Sto usando devtools pacchetto (versione 1.5) per creare il pacchetto. Il generato NAMESPACE ha il seguente

S3method(forecast, myobj) 
importFrom(forecast, forecast) 

Tuttavia quando carico il mio pacchetto in una sessione di R pulito, la funzione forecast non è disponibile. È interessante notare che posso vedere le pagine di aiuto di forecast e forecast.myobj e che posso accedere a queste funzioni tramite forecast::forecast e mypackage:::forecast.myobj. È possibile rendere in qualche modo disponibile forecast all'utente senza dipendere dal pacchetto forecast? Ho controllato la documentazione e ho esaminato una serie di domande simili qui, ma non ho trovato la risposta negativa o positiva definita.

+0

Si noti che '' devtools' utilizza roxygen2' per generare il file 'namespace', così guardando la documentazione può anche aiutare. –

risposta

10

La funzione importata deve essere esportato nel file NAMESPACE per essere a disposizione degli utenti:

S3method(forecat, myobj) 
importFrom(forecast, forecast) 
export(forecast) 

Per un esempio, vedere il pacchetto di dplyr NAMESPACE file che importa %>% dal pacchetto magrittr ed esporta in modo che è accessibile all'utente.

5

Dando la mia risposta per aggiungere informazioni su come ottenere lo NAMESPACE descritto in @G. Risposta di Grothendieck utilizzando il pacchetto devtools. Le seguenti linee (sul modello dplyr's code) fanno il trucco

##' @importFrom forecast forecast 
##' @name forecast 
##' @rdname forecast.myobj 
##' @export 
NULL 
+0

Collegamento non valido, suggerire qualcosa come https://github.com/hadley/dplyr/blob/7bb56529ca3833f9739f4021ae2778610597bd34/R/tibble-reexport.r#L3 – r2evans

+0

Risolto il problema, grazie! – mpiktas

Problemi correlati