提问人:matt 提问时间:11/7/2023 更新时间:11/7/2023 访问量:31
如何使用 R stopifnot 将粘贴用作消息?
How paste be used as a message with R stopifnot?
问:
我想使用 报告依赖于变量的消息。使用正常语法而不是逐字字符串,它会给出错误。可以这样做吗?stopifnot
paste
# As expected
stopifnot("a msg" = NULL)
# Fails
stopifnot(paste("a", "a msg") = NULL)
# Fails
msg = paste("a", "a msg")
stopifnot(msg = NULL)
答:
2赞
r2evans
11/7/2023
#1
两个选项:
使用和计算表达式的命名列表:
do.call
do.call(stopifnot, setNames(list(1 == 1, 1 == 2), paste("msg", c("A", "B")))) # Error: msg B
不要使用 named-expression,直接处理它:
if (!isTRUE(1 == 2)) stop("msg B", call. = FALSE) # Error: msg B
(虽然我怀疑你是在试图坚持 's 命名的便利。
stopifnot
评论