W tym przykładzie generowane są standardowe normalne liczby losowe i porównywane z 1,965. Zachowywane są tylko te wartości, które są mniejsze lub równe 1,965. Najpierw ziarno generatora liczb losowych jest ustawiane na dowolną wartość. Następnie generowana jest pojedyncza standardowa liczba normalna. (Pomijamy możliwość, że liczba jest większa niż 1,965). W następnej pętli for, dla 10 000 iteracji, w każdej iteracji generowana jest standardowa normalna liczba losowa. Jeśli liczba jest większa niż 1,965, rozpoczyna się następna pętla. W przeciwnym razie liczba jest dodawana do wektora liczb. Przedstawiony jest histogram końcowego wektora. Oto przykład:
> set.seed(69785)
>
> x = rnorm(1)
>
> for (i in 1:10000) {
+ x2 = rnorm(1)
+ if (x2>1.965) next
+ x = c(x, x2)
+ }
>
> hist(x)
Korzystanie z indeksów
Korzystanie z indeksów jest znacznie prostsze. Po pierwsze, ziarno generatora liczb losowych jest ustawiane na taką samą wartość, jak w poprzednim przykładzie. Następnie generowany jest wektor standardowych normalnych zmiennych losowych o długości 10 001. Następnie zachowywane są tylko te wartości w wektorze, które są mniejsze lub równe 1,965. Na koniec generowany jest histogram wektora. Oto przykład:
> set.seed (69785)
>
> x = rnorm (10001)
> x = x [x <= 1,965]
>
> hist (x)
Zauważ, że te dwa histogramy są takie same, ponieważ nasiona są takie same i używane są te same 1001 liczb. Jeśli wartość 10 000 zostanie zwiększona do powyżej 100 000, na moim komputerze metoda wykorzystująca pętle zajmuje około 13 sekund, podczas gdy metoda wykorzystująca indeksy zajmuje mniej niż 1 sekundę