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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert