#r #r-package #roxygen2
#r #r-package #roxygen2
Вопрос:
Я создал свой собственный пакет под названием «test» и устанавливаю его. Однако существует некоторая проблема.
Например, в моем файле .R я использую функцию «rowQuantiles» из другого пакета под названием «matrixStats».
И я уже добавляю
import(matrixStats)
в файл пространства имен
и добавьте
Imports:matrixStats (>= 0.57.0)
в файл описания.
Однако всякий раз, когда я загружаю свой собственный пакет
library(test)
Всегда появляется следующая ошибка
could not find function "rowQuantiles"
Как я могу сделать так, чтобы всякий раз, когда я загружаю свой собственный пакет, он загружал другие необходимые пакеты. Точно так же, как следующее
> library(ggpubr)
Loading required package: ggplot2
Комментарии:
1. попробуйте получить функцию из другого пакета, используя эту грамматику
package::method()
для вызова метода в свой пакет, он также должен загрузить с ним все необходимые зависимости для этого метода.2. @sconfluentus Привет, спасибо, в какой файл я должен поместить «package::method ()»
3. Извините, возможно, я не совсем ясно выразился. Вы бы заменили слово
package
на имя пакета, из которого вы будете использовать функцию / метод, а затем заменилиmethod()
на фактическую функцию, и пример:dplyr::select( )
имеет ли это смысл?
Ответ №1:
Ключ к пониманию этого — понять разницу между загрузкой пакета и присоединением пакета.
Пакеты, перечисленные ниже Imports:
, загружаются только тогда, когда ваш пакет подключен, то есть когда вы это делаете library(mypkg)
. Напротив, пакеты, перечисленные ниже Depends:
, загружаются и прикрепляются. Итак, если вы используете:
Depends: matrixStats
тогда все функции matrixStats будут находиться в search()
пути, когда ваш пакет будет подключен.