Як (і коли) використовувати set.seed у r
Функція set.seed() у R використовується для створення повторюваних результатів під час написання коду, який передбачає створення змінних, які приймають випадкові значення.
Використовуючи функцію set.seed(), ви гарантуєте, що кожен раз, коли ви запускаєте код, виробляються однакові випадкові значення.
Ця функція використовує такий базовий синтаксис:
set.seed(seed)
золото:
- насіння : будь-яке число.
Наступні приклади показують, як використовувати цю функцію на практиці.
Приклад 1: генерація випадкових значень без використання set.seed()
Припустімо, ми використовуємо функцію rnorm() , щоб створити фрейм даних із трьома змінними, які приймають випадкові значення, що відповідають стандартному нормальному розподілу:
#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
Якщо ми знову спробуємо створити той самий кадр даних за допомогою rnorm() , немає гарантії, що значення будуть такими ж, оскільки ми не використовували функцію 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
Зверніть увагу, що значення для кожного стовпця в кадрі даних абсолютно різні.
Приклад 2: генерація випадкових значень за допомогою set.seed()
У наступному коді показано, як використовувати функцію set.seed() перед використанням функції rnorm() для створення фрейму даних із трьома змінними, які приймають випадкові значення:
#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() із тим самим початковим значенням, що й раніше, і знову створюємо фрейм даних, він гарантовано матиме ті самі значення, що й попередній фрейм даних:
#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
Зверніть увагу, що значення в цьому кадрі даних збігаються зі значеннями в попередньому кадрі даних.
Примітка : у цьому прикладі ми вирішили використовувати 7 як початкове значення, але ви можете вибрати будь-яке число, як-от 0, 54, 99, 100, 48787 тощо.
Додаткові ресурси
У наступних посібниках пояснюється, як використовувати інші поширені функції в R:
Як використовувати функцію dim() у R
Як використовувати функцію table() у R
Як використовувати функцію sign() у R