【发布时间】:2022-01-25 11:38:19
【问题描述】:
我正在尝试从数据库构建降价文档和文本提要。 仅当名称不为空时,我才想用 paste() 构造一个句子。否则不要构造。
paste("Hi", name)
是否有可能没有循环并且不会抛出错误?
为了明确,如果name 为空,Hi 应该不打印出来。
【问题讨论】:
标签: r conditional-statements paste
我正在尝试从数据库构建降价文档和文本提要。 仅当名称不为空时,我才想用 paste() 构造一个句子。否则不要构造。
paste("Hi", name)
是否有可能没有循环并且不会抛出错误?
为了明确,如果name 为空,Hi 应该不打印出来。
【问题讨论】:
标签: r conditional-statements paste
如果空意味着未定义,则使用以下任何一种:
if (exists("name")) paste("Hi", name)
try(paste("Hi", name), silent = TRUE)
如果我们知道它已定义但为空意味着它有零个字符:
if (nzchar(name)) paste("Hi", name)
如果我们只想在 name 已定义且字符数非零的情况下运行 paste,则使用其中任何一个。请注意 && 短路,因此如果 && 的左侧为 FALSE,它将立即返回 FALSE,而不会尝试评估右侧,这很重要,因为如果尝试会产生错误。
if (exists("name") && nzchar(name)) paste("Hi", name)
try(if (nzchar(name)) paste("Hi", name), silent = TRUE)
【讨论】: