Ich habe ein Paket, das die tmPlot
Funktion von treemap
verwendet, aber wenn ich versuche, die Funktion zu nutzen, wirft es einen Fehler, dass eine ihrer Abhängigkeiten nicht geladen:tmPlot ist im Namensraum, aber seine Abhängigkeiten nicht gefunden
Error in tmPlot(data, index = index, vSize = vSize) :
could not find function "brewer.pal"
Die Abhängigkeit ist installiert und im Namespace.
Diese Frage hat ein wenig von Setup, ein Paket Problem zu sein, aber ich habe versucht, es so minimal wie möglich zu machen:
Stellen Sie sicher, Sie haben treemap
(und alle seine Abhängigkeiten) installiert.
Ich habe ein Verzeichnis namens "anRpackage" gemacht. Innen ist es ein Ordner (‚R‘) und eine Beschreibungsdatei mit dem folgenden Text ist:
Package: anRpackage
Title: What the package does (short line)
Version: 1.0
Author: Who wrote it
Maintainer: Who to complain to <[email protected]>
Description: More about what it does (maybe more than one line)
License: What license is it under?
Imports:
treemap
Collate:
'maketree.R'
Innerhalb des R/Ordners ist eine einzige R Datei ‚maketree.R‘ genannt. Sein Inhalt sind:
#' maketree
#'
#' @importFrom treemap tmPlot
#' @export maketree
maketree <-
function(data, index, vSize){
tmPlot(data, index=index, vSize=vSize)
}
Angenommen, Sie in das Verzeichnis über 'anRpackage' sind, führen Sie das folgende Skript:
library(roxygen2)
roxygenise("anRpackage/")
library(devtools)
build("anRpackage")
install("anRpackage")
Restart R (vorzugsweise mit --vanilla) und Lauf die folgenden:
library(anRpackage)
data(mtcars)
maketree(mtcars, "cyl", "mpg")
Sie sollten den Fehler ich beschrieben direkt zu Beginn ning. Warum passiert das? RColorBrewer
wird als abhängig von treemap
aufgeführt, so sollte es automatisch importiert werden, sollte es nicht?
Try 'Import RColorBrewer' hinzufügen. Dieses Paket wird möglicherweise nicht automatisch von 'treemap' geladen, oder vielleicht tut es das, aber das Aufrufen von nur einer Funktion aus der Baumstruktur ruft 'RColorBrewer' nicht auf. –
@TylerRinker Es ist nicht so sehr, dass ich irgendeine Lösung für das Problem möchte (das Problem kann einfach durch Hinzufügen von 'Bibliothek (Treemap)' in der Funktion behoben werden). Es ist mehr, dass ich wissen möchte, warum dieses Problem hier passiert, wenn es nach meinem Verständnis nicht passieren sollte. Ich verstehe nicht, warum einige Pakete manuell geladen werden müssen und andere nicht. –