Как (и когда) использовать set.seed в r
Функция set.seed() в R используется для создания повторяемых результатов при написании кода, который предполагает создание переменных, принимающих случайные значения.
Используя функцию set.seed(), вы гарантируете, что при каждом запуске кода будут создаваться одни и те же случайные значения.
Эта функция использует следующий базовый синтаксис:
set.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