Come (e quando) utilizzare set.seed in r


La funzione set.seed() in R viene utilizzata per creare risultati ripetibili durante la scrittura di codice che prevede la creazione di variabili che assumono valori casuali.

Utilizzando la funzione set.seed() ti assicuri che vengano prodotti gli stessi valori casuali ogni volta che esegui il codice.

Questa funzione utilizza la seguente sintassi di base:

set.seme(seme)

Oro:

  • seme : qualsiasi numero tu voglia.

I seguenti esempi mostrano come utilizzare questa funzione nella pratica.

Esempio 1: genera valori casuali senza utilizzare set.seed()

Supponiamo di utilizzare la funzione rnorm() per creare un data frame con tre variabili che assumono valori casuali che seguono una distribuzione normale standard:

 #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

Se proviamo a creare nuovamente lo stesso frame di dati utilizzando rnorm() , non vi è alcuna garanzia che i valori saranno gli stessi poiché non abbiamo utilizzato la funzione set.seed() :

 #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

Tieni presente che i valori per ciascuna colonna nel frame di dati sono completamente diversi.

Esempio 2: genera valori casuali utilizzando set.seed()

Il codice seguente mostra come utilizzare la funzione set.seed() prima di utilizzare la funzione rnorm() per creare un frame di dati con tre variabili che assumono valori casuali:

 #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

Se utilizziamo set.seed() con lo stesso valore seed di prima e creiamo nuovamente il frame di dati, è garantito che avrà gli stessi valori del frame di dati precedente:

 #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

Si noti che i valori in questo frame di dati corrispondono a quelli nel frame di dati precedente.

Nota : in questo esempio, scegliamo di utilizzare 7 come valore iniziale, ma puoi scegliere qualsiasi numero desideri, come 0, 54, 99, 100, 48787, ecc.

Risorse addizionali

I seguenti tutorial spiegano come utilizzare altre funzioni comuni in R:

Come utilizzare la funzione dim() in R
Come utilizzare la funzione table() in R
Come utilizzare la funzione sign() in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *