向量中的ifelse()和paste0()

时间:2018-09-02 15:04:45

标签: r if-statement vector paste

我有一个向量(mychipvalue),里面有一个数字元素。

如果数字为0,我想将其替换为“ <0.001”。如果数字不为0但例如为0.053,我希望保持不变(保持0.053)。

感谢您的帮助!

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

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

您甚至不需要ifelse。这也可以

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

但是正如蒂姆·比格莱森(Tim Biegeleisen)提到的那样,您最终得到了一个字符向量。

答案 2 :(得分:1)

使用replace

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