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