5th*_*5th 3 r devtools roxygen2 plotly
我正在创建一个包含一些功能的包。只需要一项辅助功能plotly。
但是,当我使用安装时,devtools我收到一条注释unused arguments in layout(yaxis = ay,...然后我阅读了Hadley 的关于vs 的文章importsdepends。使用 import 不会删除注释,但在 NAMESPACE 文件中添加plotlywith可以解决问题。depends
接下来我读了有关“搜索路径”的段落。哈德利在这里指出
您永远不应该在包中使用 require() 或library():相反,请使用描述中的 Depends 或 Imports 字段
我现在的问题是,使用的功能plotly更多的是软件包的附加组件。所有其他(更重要的)功能都可以与 base-R 一起使用。因此我plotly只想将其用于需要它的一个功能。
install?require东西这么坏?libraryrequireNamespace先用然后再用可以吗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)
}
Run Code Online (Sandbox Code Playgroud)
为此使用建议。
您可以在编写 R 扩展或 Hadley 的包基础知识:描述中阅读相关内容。在这两种情况下,建议是
Suggests您的包的字段中DESCRIPTION。if (requireNamespace)来测试包是否存在。像这样的东西:
if (requireNamespace("plotly", quietly = TRUE)) {
# do your plotly stuff
} else {
# do non-plotly stuff
# maybe as simple as stop("Please install plotly to use this function")
}
Run Code Online (Sandbox Code Playgroud)
至于require之后是否可以使用requireNamespace——这似乎毫无意义。Hadley 的建议似乎非常清楚用于requireNamespace("plotly")加载包并随后用于plotly::调用所需的函数。
如果您想忽略此建议,那么只需require第一次即可。使用requireNamespace后跟require是多余的。正如您的链接中所解释的,requireNamespace加载包而不附加它。require加载和连接。
| 归档时间: |
|
| 查看次数: |
645 次 |
| 最近记录: |