在警告中引用名称

spa*_*row 3 expression r

这似乎是一个简单的问题,但我找不到答案.我有一个包含调用参数名称的字符向量.在一个函数中,我想发出警告,如果其中一些是错误的,并引用名称.

bad = c("a", "b", "c")
warning(paste("Variables", paste(bad, collapse = ", "), "are wrong"))
Run Code Online (Sandbox Code Playgroud)

这使:

Warning message:
Variables a, b, c are wrong 
Run Code Online (Sandbox Code Playgroud)

但是我需要:

Warning message:
Variables 'a', 'b', 'c' are wrong 
Run Code Online (Sandbox Code Playgroud)

我想在不使用外部包的情况下实现这一目标.

Aga*_*ain 8

我们可以使用ASCII撇号 \'

warning(paste("Variables", paste0("\'", bad, "\'", collapse = ", "), "are wrong"))

# Warning message:
# Variables 'a', 'b', 'c' are wrong 
Run Code Online (Sandbox Code Playgroud)

或者单引号sQuote

warning(paste("Variables", paste(sQuote(bad), collapse = ", "), "are wrong"))

# Warning message:
# Variables ‘a’, ‘b’, ‘c’ are wrong 
Run Code Online (Sandbox Code Playgroud)

或双引号dQuote

warning(paste("Variables", paste(dQuote(bad), collapse = ", "), "are wrong"))

# Warning message:
# Variables “a”, “b”, “c” are wrong
Run Code Online (Sandbox Code Playgroud)