在R中创建函数消息,该消息测试输入是字符串



我想在我的函数中发出一条消息,告诉用户参数作为字符串传递,也就是说,如果他们忘记了引号,则该消息应说"使用引号"找不到对象x"。那可能吗?

print_name <- function(name){
  if (!is.character(name)){
    stop("Name should be a character")
  }
  else {
    print(name)
  }
}
print_name(david)
#> Error in print_name(david): object 'david' not found
print_name("david")
#> [1] "david"

由Reprex软件包(v0.2.1(在2019-05-24创建

我们可以使用 tryCatch

print_name <- function(name){
   tryCatch({
     if (is.character(name))
       print(name)
     else
       print("not a character")
    }, error = function(e) {
    stop("Name should be a character - use quotes!")
  })
}

然后运行该功能

print_name(david)

值中的错误[3L]:名称应该是字符 - 使用引号!

print_name("david")
#[1] "david"
print_name(2)
#[1] "not a character"

最新更新