Это, возможно, слишком сложно, но можно написать простую функцию следующим образом:
y <- c(210.61233,212.41, 213.2, 214)
round_if<-function(my_vec,min_length){
my_pattern<-paste0("\\.(?=\\d{",min_length,",})")
to_replace<-grep(my_pattern,my_vec,perl=TRUE)
my_vec[to_replace] <- round(Filter(function(x)grep(my_pattern,
x,perl = TRUE),my_vec),0)
my_vec
}
Тестирование на вышеуказанном:
round_if(y,2)
#[1] 211.0 212.0 213.2 214.0