Hoe willekeurige monsters in r te selecteren: met voorbeelden
Om een willekeurige steekproef in R te selecteren, kunnen we de functie sample() gebruiken, die de volgende syntaxis gebruikt:
monster(x, grootte, vervangen=FALSE, prob=NULL)
Goud:
- x: een vector van elementen waaruit u kunt kiezen.
- grootte: steekproefomvang.
- vervangen: of er al dan niet moet worden bemonsterd met vervanging. De standaardwaarde is false.
- prob: vector van waarschijnlijkheidsgewichten om elementen uit de vector te verkrijgen. De standaardwaarde is NULL.
In deze tutorial wordt uitgelegd hoe u deze functie kunt gebruiken om een willekeurige steekproef in R te selecteren uit zowel een vector als een dataframe.
Voorbeeld 1: Willekeurig monster uit een vector
De volgende code laat zien hoe u een willekeurige steekproef uit een vector selecteert zonder vervanging :
#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
De volgende code laat zien hoe u een willekeurige steekproef selecteert uit een vector met vervanging :
#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
Voorbeeld 2: Willekeurige steekproef uit een gegevensblok
De volgende code laat zien hoe u een willekeurige steekproef uit een dataframe selecteert:
#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
Dit is wat er in dit stukje code gebeurt:
1. Om een subset van een dataframe in R te selecteren, gebruiken we de volgende syntaxis: df[rijen, kolommen]
2. In de bovenstaande code selecteren we willekeurig een steekproef van drie rijen uit het dataframe en alle kolommen.
3. Het eindresultaat is een subset van het dataframe met 3 willekeurig geselecteerde rijen.
Het is belangrijk op te merken dat elke keer dat we de functie sample() gebruiken, R een andere sample zal selecteren, omdat de functie de waarden willekeurig kiest.
Om de resultaten van bepaalde analyses te reproduceren, moet u set.seed(een getal) gebruiken, zodat de functie sample() elke keer dezelfde willekeurige steekproef kiest. Bijvoorbeeld:
#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
Elke keer dat u de bovenstaande code uitvoert, worden telkens dezelfde 3 rijen van het dataframe geselecteerd.
Aanvullende bronnen
Gestratificeerde bemonstering in R (met voorbeelden)
Systematische bemonstering in R (met voorbeelden)
Clusterbemonstering in R: met voorbeelden