runif関数とtrunc関数を組み合わせて使う。runif関数はrunif(n, a, b)とすると、a < x < bなるxがn個からなる数値型ベクトルを返す。trunc関数は引数に与えた数値の小数点以下を切り捨てて返す関数(正数も負数も0に寄せる方向に切り捨てる)。
runif関数のヘルプには以下のような記述があり、指定した範囲は原則開区間(両端の値を含まない区間)になることに注意。
runif will not generate either of the extreme values unless max = min or max-min is small compared to min, and in particular not for the default arguments.
以下は、無作為抽出により0~10の11個の整数からなる、要素数が5の数値型ベクトルを作成した例。runif関数の第1引数に指定した数だけ乱数が作成される。上記のとおりrunif関数に指定の範囲は開区間のため、runif関数の第3引数には1加えた11を指定していることに注意。最後はtable関数で100万個の整数を作成した際の度数分布表を表示しており、0~10から均等に抽出されていることがわかる。
> floor(runif(5, 0, 11))
[1] 7 8 10 4 9
> floor(runif(5, 0, 11))
[1] 4 3 4 0 6
> floor(runif(5, 0, 11))
[1] 3 4 5 5 9
> floor(runif(5, 0, 11))
[1] 3 0 10 7 3
> table(floor(runif(1000000, 0, 11)))
0 1 2 3 4 5 6 7 8 9 10
91093 90902 90937 90639 91052 90885 90969 90530 91507 90554 90932