Я не уверен, является ли это дубликатом поста, на который есть ссылка в комментариях (но пост, безусловно, может быть актуальным).Из того, что я понимаю, OP хотел бы «округлить» значения в большую или меньшую сторону, если они равны >= 0.6
или < 0.6
соответственно.(Связанный пост относится к количеству цифр, до которых должно быть округлено число, что является другой проблемой.)
В ответ на вопрос об OP, здесь есть вариант, где мы определяем пользовательскую функцию my.round
my.round <- function(x, digits = 4, val = 0.6) {
z <- x * 10^digits
z <- ifelse(signif(z - trunc(z), 1) >= val, trunc(z + 1), trunc(z))
z / 10^digits
}
Затем
x <- 53.51245
my.round(x, 4)
#[1] 53.5124
x <- 53.51246
my.round(x, 4)
#[1] 53.5125
my.round
векторизовано, поэтому мы могли бы сделать
my.round(c(53.51245, 53.51246, 53.51246789), digits = 4)
#[1] 53.5124 53.5125 53.5125