2016-11-01 12 views
5

exportiert. Ich habe mein R-Paket regelmäßig auf GitHub aktualisiert, nachdem ich Hadleys umfangreiche Dokumentation über Devtools, Roxygen2 usw. auf meinem Laptop gelesen hatte. Gestern habe ich mich entschieden, stattdessen meinen Haupt-PC zu verwenden und nun Änderungen auf GitHub zu schieben. Ich habe die folgende Fehlermeldung nach der Eingabe document():Die Daten wurden nicht aus dem Namespace in R

Error: 'Adult_Females' is not an exported object from 'namespace:gbm.auto' 

Adult_Females ist der Name der ersten Datendatei in/Daten. Nach this (scrollen Sie nach 'Daten')

"Dateien, die in Daten leben/nicht den üblichen Namespace-Mechanismus verwenden und nicht exportiert werden müssen."

Also ... was ist ein Typ zu tun? Ich habe Adult_Females in keiner Weise bearbeitet, und das von mir bearbeitete R-Skript referenziert es nicht. Mein Verdacht ist, dass dieser Fehler für alle Datendateien auftaucht und es ist einfach passiert, dass dies der erste von ihnen ist, aber das ist Vermutung an dieser Stelle.

Vielen Dank im Voraus. install_github("SimonDedman/gbm.auto") wenn Sie schauen wollen.

+1

Es sieht so aus, als ob Sie 'gbm.auto :: Adult_Females' an einigen Stellen verwenden. Haben Sie versucht, das 'gbm.auto ::' zu löschen? – nrussell

+0

Hallo, danke. Ja in @examples in gbm.cons.R Ich habe "Adult_Females <- gbm.auto::Adult_Females"; werden die Daten für Benutzer geladen, wenn ich das "::" nicht angeben, da Daten nicht explizit exportiert/benannt werden sollen? Dies ist ein Bereich, wo mein Verständnis davon, wie alles github/roxygen/namespace/description zusammenpasst, fällt! –

+0

Ich bin nicht positiv, aber nur 'Adult_Females' zu verwenden, sollte gut funktionieren. '::' soll speziell mit exportierten Objekten verwendet werden, daher glaube ich, dass 'gbm.auto ::' den Fehler verursacht. – nrussell

Antwort

4

Ich stieß auf ein ähnliches Problem beim Schreiben eines R-Pakets, das einen Datensatz enthält. Ich denke, Sie müssen den Datensatz unter einem anderen Namen gespeichert haben. Zum Beispiel können Sie schreiben:

devtools:::use_data(YourDataSetName, pkg = "Path_to_Pkg/data", internal=FALSE) 

aber in Ihrem data.R Datei, Sie am Ende einen Datensatz Namen andere alsYourDataSetName (nehme an, Sie folgen Hadley Anweisungen hier: http://r-pkgs.had.co.nz/data.html) angegeben. Stellen Sie sicher, dass das im Ordner "data" gespeicherte Datenobjekt dem in Ihrer Datei data.R angegebenen entspricht.

1

für Datenobjekte, müssen die Namen in vier (4) Orte entsprechen, so überprüfen Sie sie alle:

  1. Name von Daten/foo.rda Datei
  2. Name des Objekts in Daten/foo.rda Datei
  3. Namen von R/foo.R
  4. Schnur am Ende des R/foo.R

alle vier Elemente müssen zusammenpassen Datei Datei - i In diesem Fall 'foo'. Wenn Sie den Namen der Dateien foo.rda und foo.R ändern, z. B. in bar.rda und bar.R, vergisst man leicht, das Objekt in der .rda-Datei von "foo" in "bar" umzubenennen. Es ist in der Regel am einfachsten, die Datei zu laden, benennen Sie das Objekt und die Datei unter den neuen Namen speichern:

load('data/foo.rda') 
bar <- foo 
save(bar, file='data/bar.rda') 

Wenn Sie dies nicht tun, erhalten Sie eine wenig hilfreiche Fehlermeldung über das Objekt nicht von Namensraum geladen. Sie müssen Datenobjekte NICHT @exportieren, sondern stellen Sie sicher, dass die Namen an allen Stellen übereinstimmen.

+0

Danke. Betreff: 3 & 4: Ich habe meine individuellen Dateien nicht als .R Dateien im/R Ordner, sondern als eine Datei, data.R, mit Details zu den 6 Datensätzen in meinem/data Ordner. Ich muss dies aufgrund von Anweisungen auf Hadleys Website irgendwo gemacht haben, ist das falsch? Die Namensgebung dieses Datensatz ist richtig in data.R –

+0

Ich denke, das ist auch in Ordnung ... In diesem Fall ich denke, 3 nicht notwendig ist, aber ich weiß, 1 & 2 sind, und ich nehme an 4 für die Dokumentation nur notwendig ist. – 0mn1

Verwandte Themen