【问题标题】:Conditional paste only if a value is not empty仅当值不为空时才进行条件粘贴
【发布时间】:2022-01-25 11:38:19
【问题描述】:

我正在尝试从数据库构建降价文档和文本提要。 仅当名称不为空时,我才想用 paste() 构造一个句子。否则不要构造。

paste("Hi", name)

是否有可能没有循环并且不会抛出错误?

为了明确,如果name 为空,Hi 应该打印出来。

【问题讨论】:

    标签: r conditional-statements paste


    【解决方案1】:

    如果空意味着未定义,则使用以下任何一种:

    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)
    

    【讨论】:

      猜你喜欢
      • 2022-06-29
      • 2021-09-11
      • 1970-01-01
      • 2016-11-26
      • 1970-01-01
      • 2018-09-08
      • 2011-08-24
      • 2014-05-31
      • 2021-02-12
      相关资源
      最近更新 更多