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