จะใช้ 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
หากเราพยายามสร้าง data frame เดิมอีกครั้งโดยใช้ 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() ด้วยค่า seed เหมือนเดิม และสร้าง data frame อีกครั้ง รับประกันว่าค่าจะเหมือนกับ data frame ก่อนหน้า:
#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