[R-pkg-devel] find functions with missing Rd tags
Martin Morgan
mtmorg@n@b|oc @end|ng |rom gm@||@com
Wed Jun 23 20:53:13 CEST 2021
I looked at the help page for ?tools::Rd_db and came up with this script; maybe not perfect...
Create a database of Rd information for the package of interest
library(tools)
pkg_of_interest <- "stats"
db <- Rd_db(pkg_of_interest)
Extract relevant fields / summary of fields into a database. This is from the example code on the ?Rd_db page. There can only be one `name` or `value` tag, but several `alias` tags
name <- lapply(db, tools:::.Rd_get_metadata, "name")
alias <- lapply(db, tools:::.Rd_get_metadata, "alias")
value <- lapply(db, tools:::.Rd_get_metadata, "value")
n_aliases <- lengths(alias)
df <- data.frame(
file_name = rep(names(db), n_aliases),
name = rep(unlist(name, use.names = FALSE), n_aliases),
alias = unlist(alias, use.names = FALSE),
has_value = rep(lengths(value) > 0, n_aliases)
)
Create subsets of the database, and find the aliases that have no values. This is trying to allow for the possibility that an alias occurs in more than one help file (is this allowed?)
alias_with_value <- subset(df, has_value)
alias_without_value <- subset(df, !has_value)
no_value <- subset(alias_without_value, !alias %in% alias_with_value$alias)
Find all the exports in the package, and subset the help pages to just those.
exports <- getNamespaceExports(pkg_of_interest)
subset(no_value, alias %in% exports)
This still requires some manual review; here are some entries with comments
file_name name alias has_value
84 biplot.Rd biplot biplot FALSE
yep, ?biplot finds a help page that documents biplot() and does not have a value section. It does have a 'Side effect' section, but I think that's non-standard
268 glm.summaries.Rd glm.summaries residuals.glm FALSE
This is a method for the generic residuals() applied to an object of class glm; it should still have a value section, I think...
627 stats-defunct.Rd stats-defunct arima0.diag FALSE
I guess it makes sense for defunct functions not to be fully documented, though maybe it would be helpful for those trying to migrate their code...
Martin Morgan
On 6/23/21, 1:58 PM, "R-package-devel on behalf of Alex Chubaty" <r-package-devel-bounces using r-project.org on behalf of alex.chubaty using gmail.com> wrote:
During a recent package submission process, a CRAN maintainer showed one of
their checks found missing \value{} documentation in some package Rd files,
and asked us to ensure all exported functions have their return values
described.
This check (for missing Rd values) is not run by the default checks, so I
have no idea how to quickly identify which functions are missing those
components, without manually inspecting everything. I am hoping that
someone here can tell me which special R CMD check incantation, or similar
I can use to find _exported_ functions with missing Rd tags.
Thank you,
Alex
[[alternative HTML version deleted]]
______________________________________________
R-package-devel using r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel
More information about the R-package-devel
mailing list