编写 R 包时如何导入“%>%”?
How do I import "%>%" when writing an R package?
我在加载我正在编写的 R 包时 运行 遇到以下错误。
Error in nations %>% rvest::html_nodes(".x") %>% rvest::html_nodes(".y") %>% :
could not find function "%>%"
我不确定如何在我的 R 包中导入它。这就是我设置函数的方式
nations_url_odd<-nations %>%
rvest::html_nodes('.x') %>%
rvest::html_nodes('.y') %>%
rvest::html_nodes('a')
使用以下行在您的包中创建一个 reexports.R
文件:
#' @importFrom magrittr %>%
#' @export
magrittr::`%>%`
这将使管道可用于您的包并将其重新导出给您的包的用户,因此当他们加载或附加您的包时,管道将可供他们使用(他们不必同时加载 magrittr) .这可以通过 usethis::use_pipe()
自动执行(参见 https://usethis.r-lib.org/reference/use_pipe.html). As @user2554330 mentions below, this solution depends on the use of roxygen2.
如果您是 roxygen2
用户,@Wil 会提供最佳解决方案。如果没有,那么正如@ArtemSokolov 在评论中所说,将此行添加到您的 NAMESPACE
文件中:
importFrom(magrittr,"%>%")
如果您还希望您的包的用户能够在没有 library(magrittr)
调用或类似的情况下使用管道,也将此行添加到 NAMESPACE
:
export("%>%")
您还需要确保您的 DESCRIPTION
文件在 Imports:
行包含 magrittr
,例如
Imports: magrittr
我在加载我正在编写的 R 包时 运行 遇到以下错误。
Error in nations %>% rvest::html_nodes(".x") %>% rvest::html_nodes(".y") %>% :
could not find function "%>%"
我不确定如何在我的 R 包中导入它。这就是我设置函数的方式
nations_url_odd<-nations %>%
rvest::html_nodes('.x') %>%
rvest::html_nodes('.y') %>%
rvest::html_nodes('a')
使用以下行在您的包中创建一个 reexports.R
文件:
#' @importFrom magrittr %>%
#' @export
magrittr::`%>%`
这将使管道可用于您的包并将其重新导出给您的包的用户,因此当他们加载或附加您的包时,管道将可供他们使用(他们不必同时加载 magrittr) .这可以通过 usethis::use_pipe()
自动执行(参见 https://usethis.r-lib.org/reference/use_pipe.html). As @user2554330 mentions below, this solution depends on the use of roxygen2.
roxygen2
用户,@Wil 会提供最佳解决方案。如果没有,那么正如@ArtemSokolov 在评论中所说,将此行添加到您的 NAMESPACE
文件中:
importFrom(magrittr,"%>%")
如果您还希望您的包的用户能够在没有 library(magrittr)
调用或类似的情况下使用管道,也将此行添加到 NAMESPACE
:
export("%>%")
您还需要确保您的 DESCRIPTION
文件在 Imports:
行包含 magrittr
,例如
Imports: magrittr