2

特定の間隔でいくつかのワイブル乱数を生成したいと考えています。たとえば、間隔 (0, 10) で形状 2 およびスケール 30 のワイブル分布からの 20 個の乱数。

rweibullR の関数は、指定された形状とスケール値を持つワイブル分布から乱数を生成します。誰かが方法を提案できますか?前もって感謝します。

4

2 に答える 2

1

ベース R を使用すると、乱数を生成し、ターゲット間隔にドロップするものをフィルター処理し、その量が必要よりも少ないように見える場合はさらに生成することができます。

rweibull_interval <- function(n, shape, scale = 1, min = 0, max = 10) {
  weib_rnd <- rweibull(10*n, shape, scale)
  weib_rnd <- weib_rnd[weib_rnd > min & weib_rnd < max]
  if (length(weib_rnd) < n) 
    return(c(weib_rnd, rweibull_interval(n - length(weib_rnd), shape, scale, min, max))) else 
      return(weib_rnd[1:n])
}

set.seed(1)
rweibull_interval(20, 2, 30, 0, 10)

 [1] 9.308806 9.820195 7.156999 2.704469 7.795618 9.057581 6.013369 2.570710 8.430086 4.658973
[11] 2.715765 8.164236 3.676312 9.987181 9.969484 9.578524 7.220014 8.241863 5.951382 6.934886
于 2016-04-21T05:53:00.707 に答える