有关调试代码,请参阅lint_lifecycle,它在文件中搜索匹配项。要找到函数的生命周期(这里专门针对 tidyverse),我们可以创建一个自定义函数。这些方法都没有在summarise 中识别像.groups 这样的实验参数。然后,它可能会导致以后令人沮丧的调试过程。对于这些功能,我会考虑找到一个稳定的替代方案,例如 base R aggregate。
f <- function(type = NULL){
check_pkgs <- Vectorize(lifecycle:::pkg_lifecycle_statuses, "package")
pkgs <- tidyverse::tidyverse_packages()
l <- check_pkgs(pkgs)
l <- l[lapply(l, length) > 0]
df <- data.frame(pkg = unlist(l[seq.int(1, length(l), 3)], use.names = F),
fun = unlist(l[seq.int(2, length(l), 3)], use.names = F),
cycle = unlist(l[seq.int(3, length(l), 3)], use.names = F))
if(!is.null(type)) subset(df, cycle == type) else df
}
# many functions are "experimental".
f("experimental")
对于非tidyverse函数,我们可以将pkgs <- tidyverse_packages()替换为
att <- .packages()
pkgs <- att[!att %in% rownames(installed.packages(priority="base"))]
如果情况需要,我们可以通过查找进行一些手动搜索
needles <- f()$fun
haystack <- rstudioapi::getActiveDocumentContext()[["contents"]]
顺便说一句,tidyverse 文档中仍在使用更多阶段(lifecycle 不再推荐)。选项被取代、弃用、质疑、失效、实验性、软性弃用。进一步的警告是成熟和退休。