Jak wybrać losowe próbki w r: z przykładami
Aby wybrać losową próbkę w R, możemy użyć funkcji sample() , która wykorzystuje następującą składnię:
próbka(x, rozmiar, zamień=FAŁSZ, prawdopodobieństwo=NULL)
Złoto:
- x: wektor elementów do wyboru.
- rozmiar: wielkość próbki.
- zamień: czy pobierać próbkę z wymianą, czy nie. Wartość domyślna to fałsz.
- prob: wektor wag prawdopodobieństwa uzyskania elementów z wektora. Wartość domyślna to NULL.
W tym samouczku wyjaśniono, jak używać tej funkcji do wybierania losowej próbki w R zarówno z wektora, jak i ramki danych.
Przykład 1: Losowa próbka z wektora
Poniższy kod pokazuje, jak wybrać losową próbkę z wektora bez zastępowania :
#create vector of data data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14) #select random sample of 5 elements without replacement sample(x=data, size=5) [1] 10 12 5 14 7
Poniższy kod pokazuje, jak wybrać losową próbkę z wektora z zamianą :
#create vector of data data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14) #select random sample of 5 elements with replacement sample(x=data, size=5, replace= TRUE ) [1] 12 1 1 6 14
Przykład 2: Losowa próbka z bloku danych
Poniższy kod pokazuje, jak wybrać losową próbkę z ramki danych:
#create data frame df <- data.frame(x=c(3, 5, 6, 6, 8, 12, 14), y=c(12, 6, 4, 23, 25, 8, 9), z=c(2, 7, 8, 8, 15, 17, 29)) #view data frame df X Y Z 1 3 12 2 2 5 6 7 3 6 4 8 4 6 23 8 5 8 25 15 6 12 8 17 7 14 9 29 #select random sample of three rows from data frame rand_df <- df[ sample ( nrow (df), size= 3 ), ] #display randomly selected rows rand_df X Y Z 4 6 23 8 7 14 9 29 1 3 12 2
Oto, co dzieje się w tym fragmencie kodu:
1. Aby wybrać podzbiór ramki danych w R, używamy następującej składni: df[wiersze, kolumny]
2. W powyższym kodzie losowo wybieramy próbkę 3 wierszy z ramki danych i wszystkich kolumn.
3. Wynik końcowy to podzbiór ramki danych z 3 losowo wybranymi wierszami.
Należy pamiętać, że za każdym razem, gdy używamy funkcji sample() , R wybierze inną próbkę, ponieważ funkcja wybiera wartości losowo.
Aby odtworzyć wyniki niektórych analiz, należy użyć set.seed(some number) , aby funkcja sample() za każdym razem wybierała tę samą losową próbkę. Na przykład:
#make this example reproducible set.seed(23) #create data frame df <- data.frame(x=c(3, 5, 6, 6, 8, 12, 14), y=c(12, 6, 4, 23, 25, 8, 9), z=c(2, 7, 8, 8, 15, 17, 29)) #select random sample of three rows from data frame rand_df <- df[ sample ( nrow (df), size= 3 ), ] #display randomly selected rows rand_df X Y Z 5 8 25 15 2 5 6 7 6 12 8 17
Za każdym razem, gdy uruchomisz powyższy kod, za każdym razem zostaną wybrane te same 3 wiersze ramki danych.
Dodatkowe zasoby
Próbkowanie warstwowe w R (z przykładami)
Systematyczne próbkowanie w R (z przykładami)
Próbkowanie klastrów w R: z przykładami