Bagaimana (dan kapan) menggunakan set.seed di r


Fungsi set.seed() di R digunakan untuk membuat hasil berulang saat menulis kode yang melibatkan pembuatan variabel yang mengambil nilai acak.

Dengan menggunakan fungsi set.seed() Anda memastikan bahwa nilai acak yang sama dihasilkan setiap kali Anda menjalankan kode.

Fungsi ini menggunakan sintaks dasar berikut:

set.seed(seed)

Emas:

  • seed : nomor berapa pun yang Anda inginkan.

Contoh berikut menunjukkan cara menggunakan fungsi ini dalam praktiknya.

Contoh 1: Hasilkan nilai acak tanpa menggunakan set.seed()

Misalkan kita menggunakan fungsi rnorm() untuk membuat bingkai data dengan tiga variabel yang mengambil nilai acak yang mengikuti distribusi normal standar:

 #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

Jika kita mencoba membuat bingkai data yang sama lagi menggunakan rnorm() , tidak ada jaminan bahwa nilainya akan sama karena kita tidak menggunakan fungsi 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

Perhatikan bahwa nilai untuk setiap kolom dalam bingkai data sangat berbeda.

Contoh 2: Hasilkan nilai acak menggunakan set.seed()

Kode berikut menunjukkan cara menggunakan fungsi set.seed() sebelum menggunakan fungsi rnorm() untuk membuat bingkai data dengan tiga variabel yang mengambil nilai acak:

 #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

Jika kita menggunakan set.seed() dengan nilai seed yang sama seperti sebelumnya dan membuat frame datanya kembali, dijamin nilainya sama dengan frame data sebelumnya:

 #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

Perhatikan bahwa nilai dalam bingkai data ini cocok dengan nilai dalam bingkai data sebelumnya.

Catatan : Dalam contoh ini, kami memilih untuk menggunakan 7 sebagai nilai awal, namun Anda dapat memilih angka apa pun yang Anda inginkan, seperti 0, 54, 99, 100, 48787, dst.

Sumber daya tambahan

Tutorial berikut menjelaskan cara menggunakan fungsi umum lainnya di R:

Cara menggunakan fungsi dim() di R
Cara menggunakan fungsi table() di R
Cara menggunakan fungsi sign() di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *