Ich versuche, ein Paket zu schreiben, das einige Abhängigkeiten hat. Ich bin in der Lage, die Abhängigkeiten manuell unter Verwendung library()
zu laden, aber ich möchte, dass sie zusammen mit meinem Paket automatisch geladen werden. Ich dachte, das Attribut Imports
auf der DESCRIPTION
Datei könnte den Job, aber es funktioniert nicht für mich.Wie Sie beim Schreiben eines Pakets Abhängigkeiten angeben?
Also von Grund auf neu Ich beginne mit einer völlig neuen Sitzung:
sessionInfo()
R version 3.3.0 (2016-05-03)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.4 (El Capitan)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.3.0
Dann lade ich mein Paket, das
Imports:
dplyr,
zipcode,
readxl,
mosaic
In der Tat sucht wieder zu meiner Sitzung angegeben, die Abhängigkeiten I importiert für
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] mypackage_0.1.0
loaded via a namespace (and not attached):
[1] Rcpp_0.12.4 nloptr_1.0.4 plyr_1.8.3 tools_3.3.0 mosaic_0.13.0 testthat_1.0.2 digest_0.6.9
[8] lme4_1.1-12 zipcode_1.0 memoise_1.0.0 gtable_0.2.0 nlme_3.1-127 lattice_0.20-33 mgcv_1.8-12
[15] Matrix_1.2-6 DBI_0.4-1 parallel_3.3.0 SparseM_1.7 ggdendro_0.1-20 gridExtra_2.2.1 withr_1.0.1
[22] dplyr_0.4.3 stringr_1.0.0 roxygen2_5.0.1 MatrixModels_0.4-1 devtools_1.11.1 grid_3.3.0 nnet_7.3-12
[29] R6_2.1.2 readxl_0.1.1 mosaicData_0.13.0 minqa_1.2.4 reshape2_1.4.1 ggplot2_2.1.0 car_2.1-2
[36] magrittr_1.5 scales_0.4.0 splines_3.3.0 MASS_7.3-45 assertthat_0.1 pbkrtest_0.4-6 colorspace_1.2-6
[43] quantreg_5.21 stringi_1.0-1 munsell_0.4.3 crayon_1.3.1
Wenn jedoch: mypackage_0.1.0
richtig geladen Ich schreibe eine Funktion verschachteln andere Funktionen aus einem der "geladen über Namespace" -Pakete, bekomme ich einen Fehler. Zum Beispiel:
f <- function(x) {tbl_df(x)}
> f(cars)
Error in f(cars) : could not find function "tbl_df"
Ich dachte, das Problem war, dass die Funktionen von Abhängigkeiten nur innerhalb anderen Funktionen des Pakets verwendet werden könnten, ich schreibe. Als ich jedoch f()
als eine neue Funktion meines Pakets definierte, bekam ich den gleichen Fehler.
Ich wurde vorgeschlagen, zu überprüfen, dass die NAMESPACE-Datei gespeichert und erneut geladen wird.
Dies ist meine NAMESPACE-Datei mit der f()
-Funktion.
# Generated by roxygen2: do not edit by hand
export(chain_spreadsheet)
export(f)
export(mapping)
export(stalary)
Aber auch nach dem Neugenerieren der Dokumentation und dem Neuladen des Pakets habe ich immer noch das gleiche Problem.
Haben Sie Ihre NAMESPACE-Datei ebenfalls aktualisiert? – cdeterman
Entschuldigung, ich habe es überprüft. Ja, ich habe den NAMESPACE aktualisiert. Funktioniert immer noch nicht. – Dambo
Beziehen Sie sich auf die Funktion, die Sie zeigen, oder in Ihrem Paket? Sobald Sie den NAMESPACE aktualisiert haben, müssen Sie das Paket neu aufbauen/neu installieren und es sollte funktionieren. Sie sollten NAMESPACE wahrscheinlich zu der Frage hinzufügen, ob das immer noch ein Problem ist. – cdeterman