6

我目前正在编写一个只接受某些输入的函数(在示例中只有“a”和“b”)。对于所有其他输入,该函数将返回错误。

test <- function(x) {
  allowedX <- c("a","b")
  if(x %in% allowedX) print("Good choice!")
  else stop("wrong input!")
}

为了帮助该函数的用户,我想使用 R 中的制表符完成功能提供 x 的允许值(存储在allowedX中),并替换通常在引号后应用的默认文件名完成。所以按 TAB 应该给出如下内容:

test(x="<TAB>
a b

但是,到目前为止,我找不到如何将矢量allowedX映射到 R 中的制表符完成的解决方案。有人可以告诉我该怎么做吗?

提前致谢!

4

1 回答 1

1

您可以尝试以下方法:

test <- function() {
  allowedX <- c("a","b")
  x = readline('Please enter your choice of parameters (either "a" or "b"): ')
  if(x %in% allowedX) print("Good choice!")
  else stop("wrong input!")
}
于 2013-10-08T16:03:37.897 回答