在R中修改来自'stop()'调用的错误消息

在R中修改来自'stop()'调用的错误消息,r,function,dataframe,R,Function,Dataframe,在下面我的stop呼叫中,我收到一条如下消息: 错误:在“数据”中找不到cname。在“数据”中找不到hhk。 我想知道是否有一种方式可以让消息看起来像: 在“数据”中找不到“cname”、“hhk”。 这在R基地是可能的吗 vars = c("cname", "hhk") a = 1 if(a) stop(paste(vars, "not found in the 'data'.")) Current Error message:

在下面我的
stop
呼叫中,我收到一条如下消息:

错误:在“数据”中找不到cname。在“数据”中找不到hhk。

我想知道是否有一种方式可以让消息看起来像:

在“数据”中找不到“cname”、“hhk”。

这在R基地是可能的吗

vars = c("cname", "hhk")
a = 1
if(a) stop(paste(vars, "not found in the 'data'."))

Current Error message: Error: cname not found in the 'data'.hhk not found in the 'data'.
Desired Error message: 'cname', 'hhk' not found in the 'data'.

vars
折叠为一个字符串:

vars = c("cname", "hhk")
a = 1
if(a) stop(paste(toString(vars), "not found in the 'data'."))
#Error: cname, hhk not found in the 'data'.

vars
折叠为一个字符串:

vars = c("cname", "hhk")
a = 1
if(a) stop(paste(toString(vars), "not found in the 'data'."))
#Error: cname, hhk not found in the 'data'.

可以使用两个
paste
命令执行此操作:

if(a) stop("'",paste(paste(vars,collapse = "', '",sep = ""), "' not found in the 'data'.",sep = ""))
Error: 'cname', 'hhk' not found in the 'data'.

可以使用两个
paste
命令执行此操作:

if(a) stop("'",paste(paste(vars,collapse = "', '",sep = ""), "' not found in the 'data'.",sep = ""))
Error: 'cname', 'hhk' not found in the 'data'.

我们可以使用
stopifnot

stopifnot(a)

或使用
glue

if(a) stop(glue::glue("{toString(vars)} not found in the data"))
#Error: cname, hhk not found in the data

我们可以使用
stopifnot

stopifnot(a)

或使用
glue

if(a) stop(glue::glue("{toString(vars)} not found in the data"))
#Error: cname, hhk not found in the data