Это действительно больше вопрос для math.stackexchange , но из любопытства я предоставляю это решение.Возможно, этого достаточно для ваших нужд.
Во-первых, ?rexp
говорит нам, что у него есть только два аргумента, поэтому мы генерируем случайное экспоненциальное распределение с желаемой длиной.
set.seed(42) # for sake of reproducibility
n <- 16068
mr <- c(54850, 150) # your 'myrange' with less typing
y0 <- rexp(n, 1/25) # simulate exp. dist.
y <- y0[order(-y0)] # sort
Теперьнам нужен математический подход для изменения масштаба.
# f(x) = (b-a)(x - min(x))/(max(x)-min(x)) + a
y.scaled <- (mr[1] - mr[2]) * (y - min(y)) / (max(y) - min(y)) + mr[2]
Доказательство:
> range(y.scaled)
[1] 150.312 54850.312
Это не так уж и плохо.
Сюжет:
plot(y.scaled, type="l")
Примечание: Возможны некоторые математические проблемы, см., Например, этот ответ .