2015-03-19 5 views
9

Ich versuche, ein Paket zu machen, aber wenn ich document() laufen lasse, druckt es NAMESPACE not generated by roxygen2. Skipped. Ich versuche, ggplot2,XML, R6 Pakete in meinen Funktionen zu verwenden. Ich bin sie in der folgenden Art und Weise importieren:NAMESPACE nicht von roxygen2 generiert. Übersprungen. - Verwirrung mit Hadley Buch

#' @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 

Ich frage mich, was diesen Fehler verursachen, und es gibt nichts in meinem Namespace Ausnahme

Auch ich wurde von Hadley R-Pakete buchen geht über http://r-pkgs.had.co.nz/namespace.html und durch die Linie verwirrt:

„Beachten Sie, dass Sie roxygen2 verwenden können wählen, nur Namespace zu generieren, nur ein Mann/* Rd, oder beide, wenn Sie, keine Namensraum verwandte Tags verwenden roxygen2 gewonnen‘.. t NAMESPACE berühren Wenn Sie keine Dokumentation rel Ated Tags, roxygen2 wird den Menschen nicht berühren. "

Ist das, was ich falsch mache? oder fehlt?

+0

Haben Sie versucht, die Importe stattdessen in die Datei DESCRIPTION zu stellen? roxygen2 berührt diese Datei nie –

Antwort

6
  1. Backup-Namespace-Datei, wenn Sie es für die zukünftige Verwendung
  2. die Namespace-Datei
  3. Run devtools::document(), löschen müssen, damit roxygen2 neue Namespace-Datei in dem Paketquellverzeichnis

generieren * ** Stellen Sie sicher, dass Sie im roxygen2 doc-Abschnitt der R-Quelldatei den Wert @export haben.

10

Ich denke, dass devtools versucht, BESCHREIBUNG und NAMESPACE-Dateien zu vermeiden, die es nicht selbst generiert (um Angst zu vermeiden, wenn Sie sie sorgfältig in sich selbst eingegeben haben, anstatt eingebettete roxygen Kommentare in Ihrem R-Code). Es ist nicht immer möglich, aber es versucht. Der Hauptmechanismus, so wie ich es verstehe, besteht darin, einen Kommentar am Anfang der Datei zu posten, wenn er die Datei generiert, und dann später nach diesem Kommentar zu suchen (es gibt z. B. knifflige Bits am Rand) wenn Sie @include s verwenden, um die Collate Reihenfolge in der Beschreibungsdatei zu erstellen, aber ich glaube nicht, dass Ihr Problem ist hier.)

ein Beispiel für einen solchen Kommentar ist

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

die not generated by ... Nachricht ist Sie darauf aufmerksam zu machen, und lassen Sie wissen, devtools wird nicht roxygen2 verwenden, um ein zu machen NAMESPACE-Datei für Sie. Sie haben möglicherweise den, den Sie ohne den Kommentar erwähnen, weil Sie RStudio verwendet haben, um Ihr Paket zu starten, anstatt devtools::create()?

Wenn Sie nur die NAMESPACE-Datei löschen, denke ich, devtools::document() würde dann für Sie arbeiten.

BTW haben Sie einen Fehler im Beispielcode oben (Sie haben #' @import ggplo2 statt #' @import ggplot2)

1

auch einfach alles von Namespace löschen kann man und fügen Sie verlassen eine Zeile: exportPattern("^[[:alpha:]]+")

Wenn die Datei Namespace manuell geändert, devtools::document() schlägt fehl, diese Datei zu überschreiben, deshalb verlässt sie wie zuvor. Wenn Sie den Text aus der NAMESPACE-Datei löschen und diese Zeile einfügen, denkt devtools::document(), dass die Datei neu ist und überschreibt es.

+0

Könnten Sie bitte mehr Ihre Antwort ausarbeiten, indem Sie ein wenig mehr Beschreibung der von Ihnen bereitgestellten Lösung hinzufügen? – abarisone

+0

Wenn die Datei NAMESPACE manuell geändert wird, kann devtools :: document() diese Datei nicht überschreiben, weshalb sie wie zuvor verlassen wird. Wenn Sie den Text aus der NAMESPACE-Datei löschen und diese Zeile einfügen, denkt Devtools :: Document(), dass die Datei neu ist und überschreibt sie. – irudnyts

0

Keines der vorhergehenden Beispiele funktionierte für mich. Wenn ich die NAMESPACE Datei löschte dann roxygen beschwerte, gab es keine NAMESPACE. Wenn ich eine Datei löschte und neu erstellte (mit `Note, z. B. RStudio: Building package with roxygen2. Not producing NAMESPACE file), dann beschwerte sich roxygen, dass die Datei nicht mit Roxygen erstellt wurde.

Die Lösung bestand darin, eine NAMESPACE Datei aus einem anderen Projekt zu kopieren, das mit Roxygen erstellt wurde.

Verwandte Themen