2015-03-19 5 views
9

Sto provando a creare un pacchetto ma quando corro document() stampa NAMESPACE not generated by roxygen2. Skipped. Sto cercando di utilizzare i pacchetti ggplot2,XML, R6 nelle mie funzioni. Sto importandoli nel seguente modo:NAMESPACE non generato da roxygen2. Saltato. - Confusione con il libro Hadley

#' @rdname visualization 
#' @param hist_data A table of weather variables with PWS created by hist_data function 
#' @param variable A character string of variable name 
#' @examples 
#' table <- getWeather(city = "San Francisco", state="CA") 
#' please <- getConditionsTable(table, "2015-03-09") 
#' tab <- hist_data(table, please) 
#' head(tab) 
#' plot_variable_across_all_pws(hist_data=tab, variable="tempi") 
#' @import ggplo2 
#' @import XML 
#' @import R6 

Mi chiedo che cosa potrebbe causare questo errore e non c'è nulla nella mia Namespace tranne

Inoltre, stavo andando su pacchetti R libro di Hadley http://r-pkgs.had.co.nz/namespace.html e confuso dalla linea:

"si noti che è possibile scegliere di utilizzare roxygen2 per generare solo nAMESPACE, uomo giusto/* Rd, o entrambi se non si utilizza nessun tag correlati namespace, roxygen2 ha vinto'.. t toccare NAMESPACE Se non si utilizza alcuna documentazione rel i tag ated, roxygen2 non toccherà man /. "

È questo che sto facendo male? o mancante?

+0

Hai provato a inserire le importazioni nel file DESCRIPTION? roxygen2 non toccherà mai quel file –

risposta

6
  1. Backup, se ne avete bisogno per un utilizzo futuro
  2. Eliminare il file NAMESPACE
  3. Run devtools::document(), in modo che roxygen2 genererà nuovo file NAMESPACE nella directory dei sorgenti del pacchetto

* ** assicurati di avere il tag @export nella sezione doc di roxygen2 del file sorgente R.

10

Penso che devtools cerchi di evitare di sovrascrivere i file DESCRIPTION e NAMESPACE che non si è generato da solo (per evitare angoscia se li hai digitati meticolosamente in te stesso, invece di utilizzare i commenti di roxygen incorporati nel tuo codice r). Non è sempre possibile ma ci prova.

Il meccanismo principale, a quanto ho capito, è di pubblicare un commento nella parte superiore del file quando genera il file, e in seguito, cercare quel commento (ci sono dei bit complicati attorno al bordo, per esempio se si utilizza @include s per creare l'ordine di fascicolazione nel file di descrizione, ma non credo che sia il problema qui.)

un esempio di tale commento è

# Generated by roxygen2 (4.1.0.9001): do not edit by hand 

il messaggio è not generated by ... avvisandoti di questo e facendoti sapere che devtools non sta per usare roxygen2 per fare un File NAMESPACE per te. Probabilmente hai quello che hai menzionato senza il commento perché hai usato RStudio per avviare il tuo pacchetto, invece di devtools::create()?

Se si elimina solo il file NAMESPACE, penso che lo devtools::document() potrebbe funzionare per voi.

BTW Si dispone di un errore di battitura nel codice di esempio precedente (avete #' @import ggplo2 invece di #' @import ggplot2)

1

Inoltre si può semplicemente cancellare tutto dalla NAMESPACE e aggiungere lasciare una riga: exportPattern("^[[:alpha:]]+")

Se il file namespace è modificato manualmente, devtools::document() non riesce a sovrascrivere questo file, è per questo che lascia come prima. Quando si elimina il testo dal file NAMESPACE e si inserisce questa riga, devtools::document() pensa che il file sia nuovo e lo sovrascriva.file namespace

+0

Potresti per favore elaborare più la tua risposta aggiungendo un po 'più di descrizione della soluzione che fornisci? – abarisone

+0

Se il file NAMESPACE viene modificato manualmente, devtools :: document() non sovrascrive questo file, è per questo che lascia come prima. Quando si elimina il testo dal file NAMESPACE e si inserisce questa riga, devtools :: document() pensa che il file sia nuovo e lo sovrascriva. – irudnyts

0

Nessuno degli esempi precedenti ha funzionato per me. Se ho cancellato il file NAMESPACE, il numero roxygen si è lamentato del fatto che non era presente il numero NAMESPACE. Se ho eliminato e ricreato un file NAMESPACE (con `touch, ad esempio RStudio: Building package with roxygen2. Not producing NAMESPACE file), il roxygen ha lamentato che il file non è stato creato con roxygen.

La soluzione era copiare un file NAMESPACE da un altro progetto che era creato con roxygen.

Problemi correlati