Como (e quando) usar set.seed em r


A função set.seed() em R é usada para criar resultados repetíveis ao escrever código que envolve a criação de variáveis que assumem valores aleatórios.

Ao usar a função set.seed() você garante que os mesmos valores aleatórios sejam produzidos toda vez que você executar o código.

Esta função usa a seguinte sintaxe básica:

set.seed(semente)

Ouro:

  • semente : qualquer número que você quiser.

Os exemplos a seguir mostram como usar esta função na prática.

Exemplo 1: Gere valores aleatórios sem usar set.seed()

Suponha que usemos a função rnorm() para criar um quadro de dados com três variáveis que assumem valores aleatórios que seguem uma distribuição normal padrão:

 #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 tentarmos criar o mesmo quadro de dados novamente usando rnorm() , não há garantia de que os valores serão os mesmos, pois não usamos a função 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

Observe que os valores de cada coluna no quadro de dados são completamente diferentes.

Exemplo 2: Gere valores aleatórios usando set.seed()

O código a seguir mostra como usar a função set.seed() antes de usar a função rnorm() para criar um quadro de dados com três variáveis que assumem valores aleatórios:

 #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 usarmos set.seed() com o mesmo valor inicial de antes e criarmos o quadro de dados novamente, é garantido que ele terá os mesmos valores do quadro de dados anterior:

 #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

Observe que os valores neste quadro de dados correspondem aos do quadro de dados anterior.

Nota : Neste exemplo, optamos por usar 7 como valor inicial, mas você pode escolher qualquer número que desejar, como 0, 54, 99, 100, 48787, etc.

Recursos adicionais

Os tutoriais a seguir explicam como usar outras funções comuns em R:

Como usar a função dim() em R
Como usar a função table() em R
Como usar a função sign() em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *