ifelse () и paste0 () в векторе - PullRequest
       9

ifelse () и paste0 () в векторе

0 голосов
/ 02 сентября 2018

У меня есть вектор (mychipvalue) с единственным числовым элементом в нем.

Если числовое значение равно 0, я хотел бы заменить его на «<0,001». Если число не 0, а, например, 0,053, я бы хотел оставить его нетронутым (оставьте 0,053). </p>

Спасибо за любую помощь!

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

Ответы [ 3 ]

0 голосов
/ 02 сентября 2018

Вам даже не нужно ifelse. Это также будет работать

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

Но в итоге вы получите вектор персонажей, как уже упоминал Тим Бигелайзен.

0 голосов
/ 02 сентября 2018

Использование replace

replace(mychipvalue, mychipvalue == 0, "<0.001")
0 голосов
/ 02 сентября 2018

Вам не нужны эти вызовы paste0, но для согласованности вам, вероятно, следует сообщить о символе в обоих случаях:

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

Я использую новую символьную переменную для хранения выходных данных ifelse, потому что ваши исходные данные являются числовыми и, вероятно, должны оставаться такими.

...