Programistyczne problemy próbkowania

Funkcja sample() może sprawiać pewne problemy jeżeli zostanie niepoprawnie zastosowana w kodzie. Przykład takiego problemu został opisany na stronie R snippets.

I chociaż juz pierwszy komentarz pod postem stwierdza, że jest to problem udokumentowany w pomocy funkcji i zalecana jest nawet funkcja rozwiązująca przedstawione problemy (resample()), to i tak uważam, że warto przeanalizować przynajmniej kod zaprezentowany poniżej (R snippets).

 Zobaczcie różnicę:

for (i in 1:4) {
      x <- i:4
      print(sample(x))
}
#[1] 4 1 2 3
#[1] 3 2 4
#[1] 4 3
#[1] 3 2 1 4

Created by Pretty R at inside-R.org

for (i in 1:4) {
      x <- i:4
      print(x[sample(length(x))])
}
#[1] 4 1 2 3
#[1] 3 2 4
#[1] 3 4
#[1] 4

Created by Pretty R at inside-R.org

Źródło: R-bloggers

admin poniedziałek, 26 grudzień 2011 - 11:41 pm | | Blog-R