Hoe (en wanneer) set.seed te gebruiken in r


De functie set.seed() in R wordt gebruikt om herhaalbare resultaten te creëren bij het schrijven van code waarbij variabelen worden gemaakt die willekeurige waarden aannemen.

Door de functie set.seed() te gebruiken, zorg je ervoor dat elke keer dat je de code uitvoert dezelfde willekeurige waarden worden geproduceerd.

Deze functie gebruikt de volgende basissyntaxis:

set.seed(zaad)

Goud:

  • zaad : elk gewenst nummer.

De volgende voorbeelden laten zien hoe u deze functie in de praktijk kunt gebruiken.

Voorbeeld 1: Genereer willekeurige waarden zonder set.seed() te gebruiken

Stel dat we de functie rnorm() gebruiken om een dataframe te maken met drie variabelen die willekeurige waarden aannemen die een standaard normale verdeling volgen:

 #create data frame
df <- data. frame (var1 = rnorm(10),
                 var2 = rnorm(10),
                 var3 = rnorm(10))

#view data frame
df

          var1 var2 var3
1 0.13076685 -0.32183484 0.08083558
2 0.93926332 0.92271464 1.14695121
3 1.97227368 0.01140237 0.29325751
4 1.99656555 0.26735086 1.17131155
5 -1.07893403 -0.12748185 -0.75510058
6 -0.58955485 -0.29720114 0.57928670
7 1.39367811 -1.43043111 -0.39395086
8 -0.09977302 -1.93133994 -0.66654713
9 -0.71876371 2.27999183 0.45990405
10 0.90421007 2.28077581 0.57545709

Als we hetzelfde dataframe opnieuw proberen te maken met rnorm() , is er geen garantie dat de waarden hetzelfde zullen zijn, aangezien we de functie set.seed() niet hebben gebruikt:

 #create data frame
df <- data. frame (var1 = rnorm(10),
                 var2 = rnorm(10),
                 var3 = rnorm(10))

#view data frame
df

         var1 var2 var3
1 0.1841698 1.18134622 -0.9410759
2 -1.3535924 -0.73136515 -0.2802438
3 1.0323083 0.06530416 -1.3447057
4 -0.6540649 -0.45005680 1.1222456
5 0.5201189 -0.03688566 -0.6317776
6 0.6119033 -0.13083390 0.7034120
7 -0.1781823 0.56807218 0.2138826
8 -0.1325103 1.10700318 -0.6799447
9 -0.6185180 0.12327017 -0.2411492
10 -0.2699959 -0.04093012 0.5289240

Merk op dat de waarden voor elke kolom in het dataframe compleet verschillend zijn.

Voorbeeld 2: Genereer willekeurige waarden met set.seed()

De volgende code laat zien hoe u de functie set.seed() gebruikt voordat u de functie rnorm() gebruikt om een dataframe te maken met drie variabelen die willekeurige waarden aannemen:

 #make this example reproducible
set. seeds (7)

#create data frame
df <- data. frame (var1 = rnorm(10),
                 var2 = rnorm(10),
                 var3 = rnorm(10))

#view data frame
df

         var1 var2 var3
1 2.2872472 0.356986230 0.8397504
2 -1.1967717 2.716751783 0.7053418
3 -0.6942925 2.281451926 1.3059647
4 -0.4122930 0.324020540 -1.3879962
5 -0.9706733 1.896067067 1.2729169
6 -0.9472799 0.467680511 0.1841928
7 0.7481393 -0.893800723 0.7522799
8 -0.1169552 -0.307328300 0.5917451
9 0.1526576 -0.004822422 -0.9830526
10 2.1899781 0.988164149 -0.2760640

Als we set.seed() gebruiken met dezelfde zaadwaarde als voorheen en het dataframe opnieuw maken, heeft het gegarandeerd dezelfde waarden als het vorige dataframe:

 #make this example reproducible
set. seeds (7)

#create data frame
df2 <- data. frame (var1 = rnorm(10),
                  var2 = rnorm(10),
                  var3 = rnorm(10))

#view data frame
df2

         var1 var2 var3
1 2.2872472 0.356986230 0.8397504
2 -1.1967717 2.716751783 0.7053418
3 -0.6942925 2.281451926 1.3059647
4 -0.4122930 0.324020540 -1.3879962
5 -0.9706733 1.896067067 1.2729169
6 -0.9472799 0.467680511 0.1841928
7 0.7481393 -0.893800723 0.7522799
8 -0.1169552 -0.307328300 0.5917451
9 0.1526576 -0.004822422 -0.9830526
10 2.1899781 0.988164149 -0.2760640

Merk op dat de waarden in dit dataframe overeenkomen met die in het vorige dataframe.

Opmerking : in dit voorbeeld kiezen we ervoor om 7 als startwaarde te gebruiken, maar u kunt elk gewenst getal kiezen, zoals 0, 54, 99, 100, 48787, enz.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende functies in R kunt gebruiken:

Hoe de dim()-functie in R te gebruiken
Hoe de functie table() in R te gebruiken
Hoe de sign()-functie in R te gebruiken

Einen Kommentar hinzufügen

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