【问题标题】:ifelse() and paste0() in a vector向量中的 ifelse() 和 paste0()
【发布时间】:2019-02-07 19:56:06
【问题描述】:

我有一个向量(mychipvalue),其中包含一个数字元素。

如果数字为 0,我想将其替换为“

感谢您的帮助!

mychipvalue <- 0 
mychipvalue < ifelse(mychipvalue==0,paste0("<0.001"),paste0(mychipvalue))

【问题讨论】:

    标签: r if-statement vector paste


    【解决方案1】:

    您不需要对paste0 的这些调用,但为了保持一致性,您可能应该在两种情况下都报告一个字符:

    mychipvalue <- 0 
    mychip_report <- ifelse(mychipvalue==0, "<0.001", as.character(mychipvalue))
    

    我正在使用一个新的字符变量来存储ifelse 的输出,因为您的原始数据是数字,并且应该保持这种状态。

    【讨论】:

      【解决方案2】:

      你甚至不需要ifelse。这也有效

      mychipvalue[mychipvalue == 0] <- "<0.001"
      

      但您最终会得到一个字符向量,正如 Tim Biegeleisen 已经提到的那样。

      【讨论】:

        【解决方案3】:

        使用replace

        replace(mychipvalue, mychipvalue == 0, "<0.001")
        

        【讨论】:

          猜你喜欢
          • 2020-06-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-21
          • 1970-01-01
          • 2017-10-15
          相关资源
          最近更新 更多