У меня есть пакет, который использует tmPlot
функцию из treemap
, но когда я пытаюсь использовать эту функцию, она выдает ошибку, в которой не загружена одна из его зависимостей:
Error in tmPlot(data, index = index, vSize = vSize) :
could not find function "brewer.pal"
Зависимость установлена и в пространстве имен.
У этого вопроса есть немного настройки, являясь проблемой пакета, но я попытался сделать это как можно меньше:
Убедитесь, что у вас установлена treemap
(и все ее зависимости).
Я создал каталог под названием "anRpackage". Внутри это папка ('R') и файл DESCRIPTION со следующим текстом:
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'
Внутри папки R/есть один R файл, называемый "maketree.R". Его содержимое:
#' maketree
#'
#' @importFrom treemap tmPlot
#' @export maketree
maketree <-
function(data, index, vSize){
tmPlot(data, index=index, vSize=vSize)
}
Предполагая, что вы находитесь в каталоге выше 'anRpackage', запустите следующий script:
library(roxygen2)
roxygenise("anRpackage/")
library(devtools)
build("anRpackage")
install("anRpackage")
Перезапустите R (желательно с --vanilla) и запустите следующее:
library(anRpackage)
data(mtcars)
maketree(mtcars, "cyl", "mpg")
Вы должны получить ошибку, описанную мной в начале. Почему это происходит? RColorBrewer
указан как Depends для treemap
, поэтому его следует автоматически импортировать, если это не так?