имеют в своих данных значение, эквивалентное исключению, поэтому у вас возникнет проблема, независимо от того, неправильно ли вы отклонили значение, которое ложно казалось эквивалентным ограничению, только из-за точности чисел или если вы правильно его сохранили, но из того, что вы можете измерить, у вас будет невозможное значение в ваших данных. Это кажется маловероятной проблемой, но ее невозможно решить удовлетворительно, если она появится.

я хочу сгенерировать случайное число сrunif() в пределах определенного интервала при исключении определенного значения (например, 0,5) я могу написать эту функциюex.runif() кто делает работу, но это в сотни раз медленнее, чем обычноrunif(), Может ли кто-нибудь указать мне на лучшее решение?

ex.runif <- function(n, excl, min, max) {
  # ex.runif() excludes the specific value 'excl'
  q <- excl
  while (q == excl) {
    q <- runif(n, min = min, max = max)
  } 
  return(q)
}

set.seed(42)
ex.runif(1, .5, .25, .75)  # exclude .5, interval [.25, .75]
# [1] 0.707403

library(microbenchmark)
microbenchmark(ex.runif(1, .5, .25, .75), runif(1, min = .25, max = .75))
# Unit: microseconds
# expr         min      lq      mean   median       uq     max neval cld
# ex.runif 692.439 704.685 721.51135 715.2735 722.9275 962.373   100   b
# runif      2.041   2.551   3.49044   2.8070   3.3170  21.176   100  a 

Ответы на вопрос(1)

Ваш ответ на вопрос