我目前正在使用
R
共同开发一个 devtools
包。我们使用
tidyverse %>%
以及相关的 purrr
和 dplyr
包在我们的
功能。
我们的功能之一如下(为清楚起见进行了编辑):
#' Print `cust_modl` object
#'
#' @param x A `cust_modl` object.
#' @param ... Additional arguments passed to `print.cust_modl()` to print the
#' object.
#'
#' @method print cust_modl
#' @export
print.cust_modl <- function(x, ...) {
req_var_nms <- x$var %>%
purrr::compact(.x = .) %>%
names(x = .)
comp_var_ind_filt <- req_var_nms %>%
purrr::map(.x = ., .f = ~ purrr::pluck(x$var, .x))
}
目前在我们的 Github Actions
NOTE
中给出了 devtools::check()
,如下:
print.cust_modl: no visible binding for global variable ‘.’
我了解到此错误是由于基于
这篇有用的帖子的
rlang
相关问题造成的。因此,通常我们按照建议使用 @importFrom rlang .data
并确保
在 dplyr
中,我们在引用列时正确携带 .data$
语法。
但是,这个
NOTE
似乎是由 purrr
调用给出的,但它不是
明确如何仅针对 rlang
纠正 .
导入(而不是通常更明确的
.data
致电dplyr
)。
任何人都可以解释一下如何正确调整
.
的 R 包代码吗?
tidyverse 软件包如 purrr
?我知道我们可以在本地设置 . <- NULL
,但是有没有更严格的方法来使用 rlang
进行设置?了解此处推荐的指南将使我们的软件包能够按照社区标准进行开发。
免责声明:这是从这里交叉发布的,因为已经好几天没有收到回复了。
此警报来自
codetools
包。除了其他解决方案之外,还有一个选项是在 R CMD 检查中完全不使用 codetools
。在您的 ~/.Renviron
文件中(要从 R 控制台快速打开,请使用 usethis::edit_r_environ()
),添加一行,如下所示:
_R_CHECK_USE_CODETOOLS_= FALSE
如果您进行大量 NSE,这会引发许多错误警报,建议您这样做。
通常这只是一个问题:
devtools::document()
。例如,如果我在
preferred_font
常量上收到此警告,我可以在其上方添加以下行,告诉 Roxygen 将其记录为“内部”常量:
#' Preferred font for data viz
#' @keywords internal
preferred_font <- "Arial"
然后我就跑
devtools::document()
。
下次我运行
devtools::check()
或 lintr::lint_package()
时,它不会发出警告。