R'de set.seed nasıl (ve ne zaman) kullanılır?


R’deki set.seed() işlevi, rastgele değerler alan değişkenler oluşturmayı içeren kod yazarken tekrarlanabilir sonuçlar oluşturmak için kullanılır.

set.seed() fonksiyonunu kullanarak, kodu her çalıştırdığınızda aynı rastgele değerlerin üretilmesini sağlarsınız.

Bu işlev aşağıdaki temel sözdizimini kullanır:

set.seed(tohum)

Altın:

  • tohum : istediğiniz herhangi bir sayı.

Aşağıdaki örnekler bu fonksiyonun pratikte nasıl kullanılacağını göstermektedir.

Örnek 1: set.seed() kullanmadan rastgele değerler üretin

Standart normal dağılımı takip eden rastgele değerler alan üç değişkenli bir veri çerçevesi oluşturmak için rnorm() işlevini kullandığımızı varsayalım:

 #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

Aynı veri çerçevesini rnorm() kullanarak tekrar oluşturmaya çalışırsak set.seed() fonksiyonunu kullanmadığımız için değerlerin aynı olacağının garantisi yoktur:

 #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

Veri çerçevesindeki her sütunun değerlerinin tamamen farklı olduğunu unutmayın.

Örnek 2: set.seed() kullanarak rastgele değerler oluşturun

Aşağıdaki kod, rastgele değerler alan üç değişkenli bir veri çerçevesi oluşturmak için rnorm() işlevini kullanmadan önce set.seed() işlevinin nasıl kullanılacağını gösterir:

 #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

Set.seed() işlevini öncekiyle aynı tohum değeriyle kullanırsak ve veri çerçevesini yeniden oluşturursak, önceki veri çerçevesiyle aynı değerlere sahip olması garanti edilir:

 #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

Bu veri çerçevesindeki değerlerin önceki veri çerçevesindeki değerlerle eşleştiğini unutmayın.

Not : Bu örnekte başlangıç değeri olarak 7’yi kullanmayı seçtik ancak siz 0, 54, 99, 100, 48787 vb. gibi istediğiniz herhangi bir sayıyı seçebilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde R’deki diğer yaygın işlevlerin nasıl kullanılacağı açıklanmaktadır:

R’de dim() işlevi nasıl kullanılır?
R’de table() işlevi nasıl kullanılır?
R’de işaret () işlevi nasıl kullanılır?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir