我想在函数中发出一条消息,告诉用户以字符串形式传递参数,即如果他们忘记了引号,则该消息应显示“使用引号”而不是“找不到对象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 package(v0.2.1)于2019-05-24创建
答案 0 :(得分:4)
我们可以使用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"