Я создаю пакет с несколькими функциями. Требуется только одна вспомогательная функция plotly
.
Однако, когда я устанавливаю с помощью devtools
, я получаю примечание unused arguments in layout(yaxis = ay,...
Затем я читаю статью Хэдли о imports
против depends
. Использование импорта не удаляет заметку, но добавление plotly
с depends
в файл NAMESPACE решает проблему.
Далее я читаю абзац о «Пути поиска». Здесь Хэдли утверждает, что
Никогда не следует использовать require () или library () в пакете: вместо этого используйте поля Depends или Imports в ОПИСАНИИ
Теперь моя проблема в том, что функция, использующая plotly
, является скорее дополнением к пакету. Все остальные (более важные) функции работают с base-R.
Поэтому я хочу использовать plotly
только для той функции, которая в этом нуждается.
- Возможно ли это без создания заметки во время
install
?
- Почему
require
или library
так плохо внутри упаковки?
- Было бы хорошо использовать
requireNamespace
, а затем require
после этого?
Вот пример кода:
#' Some plotly function
#'
#' Some very long description
#'
#' @param x_vec A numeric vector
#' @param y_vec A numeric vector
#' @keywords Some keywords
#' @return A plotly object
#' @export
#' @examples
debugMinEx<-function(x_vec,y_vec){
ay <- list(title = "",zeroline = FALSE,showline = FALSE,
showticklabels = FALSE, showgrid = FALSE,
scaleanchor="x",scaleratio=1) ## empty axis
ax <- list(title = "",zeroline = FALSE,showline = FALSE,
showticklabels = FALSE, showgrid = FALSE) ## empty axis
my_legend<-list(font = list(family = "sans-serif", size = 14, color = "#000000"),
x = 0, y = -0.05,orientation = "h")
plot_ly() %>%
add_trace(x=x_vec,y=y_vec,
type='scatter',mode='lines') %>%
layout(yaxis = ay,xaxis=ax,
legend = my_legend)
}