我正在编写一个使用tidyverse函数的软件包,也就是使用非标准评估的函数,比如dplyr::filter
:
setMethod("filter_by_id",
signature(x = "studies", id = "character"),
definition = function(x, id) {
study_id <- rlang::expr(study_id)
lst <- purrr::map(s4_to_list(x), ~ dplyr::filter(.x, !!study_id %in% id))
y <- list_to_s4(lst, "studies")
return(y)
})
我正在使用
!!
运算符(我可能还会使用rlang
包中的其他一些运算符),想知道是否需要像管道运算符%>%
一样明确导入它,就像这个问题中所解释的那样:R:在自己编写的包中使用magrittr pipe运算符。是否有类似于
usethis::use_pipe()
的东西,但是适用于rlang
中的运算符?
rlang
,那么最好使用importFrom
,因为use_this
没有这个功能。您还可以自定义自己的use_quasi
。在我看来,use_pipe
只是一个快捷方式,实际上与importFrom
相同。 - NelsonGon