我正在尝试构建一个 devtools 包,并且我需要在我的代码中使用此循环:
for (i in 1:length(idk)){
tritemp=intetemp[intetemp$path %in% idk[i],]
tritemp=tritemp %>%
group_by(grp = paste(pmax(from, to), pmin(from, to), sep = "_")) %>%
slice(1) %>%
ungroup() %>%
select(-grp)
interac=rbind(interac,tritemp)
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我运行 devtools 检查时,出现以下错误:
interactions: no visible global function definition for '%>%'
interactions: no visible binding for global variable 'from'
interactions: no visible binding for global variable 'to'
interactions: no visible global function definition for 'slice'
interactions: no visible global function definition for 'ungroup'
interactions: no visible global function definition for 'select'
interactions: no visible binding for global variable 'grp'
Undefined global functions or variables:
%>% from grp select slice to ungroup
Run Code Online (Sandbox Code Playgroud)
我真的不知道该怎么办,有人可以帮助我吗?
小智 6
这些都是来自不同包的函数。您需要指定这些函数来自哪里。特别是对于管道函数,您需要将 magrittr 放在DESCRIPTION文件的导入部分下。然后在使用管道的脚本中您可以放置
#' @importFrom magrittr %>%
NULL
Run Code Online (Sandbox Code Playgroud)
如果您使用 roxygen2 自动让它将该函数添加到您的函数中,NAMESPACE
您将必须为您从另一个包中使用的每个函数执行此操作。
除了使用@importFrom ...顶部的 之外,您还可以浏览脚本并指定您正在使用的函数来自哪个包。例如dplyr::select(yourvariables)
在这里用一个答案来详细解释有点太多,所以我建议阅读这篇文章以获得更好的理解。