仅当值不为空时才进行条件粘贴
Conditional paste only if a value is not empty
我正在尝试构建降价文档和来自数据库的文本提要。
仅当名称不为空时,我才想用 paste() 构造一个句子。否则不构建。
paste("Hi", name)
是否可以不循环且不抛出错误?
明确一点,如果name
为空,Hi
应该不被打印。
如果空表示未定义,则使用以下任一方法:
if (exists("name")) paste("Hi", name)
try(paste("Hi", name), silent = TRUE)
如果我们知道它已定义但为空意味着它有零个字符:
if (nzchar(name)) paste("Hi", name)
如果我们只想运行 粘贴如果名称已定义且字符数非零,则使用其中任何一个。请注意 && 短路,因此如果 && 的左侧为 FALSE,它将立即 return FALSE 而不会尝试评估右侧,这很重要,因为如果它尝试会产生错误。
if (exists("name") && nzchar(name)) paste("Hi", name)
try(if (nzchar(name)) paste("Hi", name), silent = TRUE)
我正在尝试构建降价文档和来自数据库的文本提要。 仅当名称不为空时,我才想用 paste() 构造一个句子。否则不构建。
paste("Hi", name)
是否可以不循环且不抛出错误?
明确一点,如果name
为空,Hi
应该不被打印。
如果空表示未定义,则使用以下任一方法:
if (exists("name")) paste("Hi", name)
try(paste("Hi", name), silent = TRUE)
如果我们知道它已定义但为空意味着它有零个字符:
if (nzchar(name)) paste("Hi", name)
如果我们只想运行 粘贴如果名称已定义且字符数非零,则使用其中任何一个。请注意 && 短路,因此如果 && 的左侧为 FALSE,它将立即 return FALSE 而不会尝试评估右侧,这很重要,因为如果它尝试会产生错误。
if (exists("name") && nzchar(name)) paste("Hi", name)
try(if (nzchar(name)) paste("Hi", name), silent = TRUE)