更人性化的R包开发函数输入参数

More user-friendly Input parameter for function in developing R package

我正在制作一个生成摘要报告的包。我有一个名为 makeSum 的函数,它需要很多输入数据并将输出汇总报告。但是,可以制作 6 种不同的输出摘要报告。

因为包中还有很多其他函数,我认为最有意义的是有一个函数 (makeSum) 和一个参数 (sumType),它有 6 个可能的字符串选项(每个都表示要进行的总结 - "aBShort"、"aBLong"、"gB"、"eAShort"、"eALong"、"eB"),而不是有 6 个不同的函数("makeSumABShort", "makeSumABLong", "makeSumGB", "makeSumEAShort", "makeSumEALong", "makeSumEB").

我正在尝试确定是否可以采取一些步骤使用户在 运行 启用 makeSum 函数时更容易为 sumType 参数提供正确的字符串(无需记住字符串名称,因为它们会很长)。

例如,在使用 RStudio 时,如果我大致知道函数名称是什么(比如 makeSum),那么我就可以开始将它输入到控制台中,点击 Tab,并获得自动填充建议。如果我有该函数的特定参数(例如 sumType),那么我也可以将其输入控制台,点击选项卡,并获得自动填充建议。当恰好有 6 个字符串选项可用于该参数时,是否可以做类似的事情?为了与示例保持一致,如果我输入:

makeSum(data1 = myDF1, data2 = myDF2, sumType = )

并点击 Tab,然后我将有六个可能的字符串选项 ("aBShort"、"aBLong"、"gB"、"eAShort"、"eALong"、"eB") 为我列出。

截至目前,用户必须 运行 帮助 (makeSum),并滚动浏览帮助手册以确定他们想要用于 sumType 参数的字符串的确切名称。

我确实考虑过用数字(1, 2, 3, 4, 5, 6)代替长字符串,但我发现长字符串更清晰,可以完整说明6个汇总报告的内容。

任何关于如何使这方面更加用户友好的建议将不胜感激!

这是我的 MWE:

#' Generate summarization report
#'
#' Generates one of six possible types of summarization reports
#'
#' @param data1 first input
#' @param data2 second input
#' @param sumType type of summarization report. One of the following six string possibilities must be specified ("aBShort", "aBLong", "gB", "eAShort", "eALong", "eB"). "aBShort" means short version of alpha and beta summarization. "ABLong" mean long version of alpha and beta summarization. "gB" means gamma and beta summarization. "eAShort" means short version of epsilon and alpha summarization. "eALong" means long version of epsilon and alpha summarization. "eB" means epsilon and beta summarization.
#' @export

#'
makeSum =
  function(data1=NULL, data2=NULL, sumType=NULL){
...
}
> mychoice <- function() {sumType=menu(c("aBShort", "aBLong", "gB", "eAShort", "eALong", "eB")); print(sumType)}
> mychoice()

1: aBShort
2: aBLong
3: gB
4: eAShort
5: eALong
6: eB

Selection: 4
[1] 4

除非您希望指定默认类型,否则函数形式中不需要参数。