我想在我的函数中发出一条消息,告诉用户参数作为字符串传递,也就是说,如果他们忘记了引号,则该消息应说"使用引号"找不到对象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"