更加用户友好的输入参数,用于开发R包中的功能

时间:2015-11-07 19:15:58

标签: r user-interface package rstudio user-input

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

由于包中有很多其他函数,我认为最合理的是让一个函数(makeSum)带有一个参数(sumType),它有6个可能的字符串选项(每个都指示汇总的类型)制作 - " aBShort"," aBLong"," gB"," eAShort"," eALong",&# 34; eB"),而不是有6个不同的功能(" makeSumABShort"," makeSumABLong"," makeSumGB"," makeSumEAShort" ," makeSumEALong"," makeSumEB")。

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

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

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

并点击标签,然后我会有六个可能的字符串选项(" aBShort"," aBLong"," gB"," eAShort&# 34;," 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){
...
}

1 个答案:

答案 0 :(得分:0)

> 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

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