วิธีใช้ฟังก์ชันมาตราส่วน () ใน r (พร้อมตัวอย่าง)
ฟังก์ชัน scale() ใน R สามารถใช้เพื่อปรับขนาดค่าในเวกเตอร์ เมทริกซ์ หรือเฟรมข้อมูล
ฟังก์ชันนี้ใช้ไวยากรณ์พื้นฐานต่อไปนี้:
scale(x, center = TRUE , scale = TRUE )
ทอง:
- x : ชื่อของวัตถุที่จะปรับขนาด
- center : ว่าจะลบค่าเฉลี่ยเมื่อทำการปรับขนาดหรือไม่ ค่าเริ่มต้นคือ TRUE
- scale : ว่าจะหารด้วยส่วนเบี่ยงเบนมาตรฐานหรือไม่เมื่อทำการปรับขนาด ค่าเริ่มต้นคือ TRUE
ฟังก์ชันนี้ใช้สูตรต่อไปนี้ในการคำนวณค่ามาตราส่วน:
สเกล x = ( เดิม x – x̄) / s
ทอง:
- original x : ค่า x ดั้งเดิม
- x̄ : ตัวอย่างหมายถึง
- s : ค่าเบี่ยงเบนมาตรฐานของกลุ่มตัวอย่าง
สิ่งนี้เรียกอีกอย่างว่า การทำให้ ข้อมูลเป็นมาตรฐาน ซึ่งจะแปลงค่าดั้งเดิมแต่ละค่าให้เป็น คะแนน z
ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ
ตัวอย่างที่ 1: ค่าสเกลในเวกเตอร์
สมมติว่าเรามีเวกเตอร์ของค่าต่อไปนี้ใน R:
#define vector of values x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9) #view mean and standard deviation of values mean(x) [1] 5 sd(x) [1] 2.738613
รหัสต่อไปนี้แสดงวิธีการปรับขนาดค่าเวกเตอร์โดยใช้ฟังก์ชัน scale() :
#scale the values of x x_scaled <- scale(x) #view scaled values x_scaled [,1] [1,] -1.4605935 [2,] -1.0954451 [3,] -0.7302967 [4,] -0.3651484 [5,] 0.0000000 [6,] 0.3651484 [7,] 0.7302967 [8,] 1.0954451 [9,] 1.4605935
ต่อไปนี้คือวิธีคำนวณค่าตามมาตราส่วนแต่ละค่า:
- มูลค่า 1: (1 – 5) / 2.738613 = -1.46
- ค่า 2: (2 – 5) / 2.738613 = -1.09
- มูลค่า 3: (3 – 5) / 2.738613 = -0.73
และอื่นๆ
โปรดทราบว่าหากเราระบุ scale=FALSE ฟังก์ชันจะไม่หารด้วยค่าเบี่ยงเบนมาตรฐานเมื่อปรับขนาด:
#scale the values of x but don't divide by standard deviation x_scaled <- scale(x, scale = FALSE ) #view scaled values x_scaled [,1] [1,] -4 [2,] -3 [3,] -2 [4,] -1 [5,] 0 [6,] 1 [7,] 2 [8,] 3 [9,] 4
ต่อไปนี้คือวิธีคำนวณค่าตามมาตราส่วนแต่ละค่า:
- ค่า 1: 1 – 5 = -4
- ค่า 2: 2 – 5 = -3
- ค่า 3: 3 – 5 = -2
และอื่นๆ
ตัวอย่างที่ 2: ปรับขนาดคอลัมน์ในกรอบข้อมูล
ส่วนใหญ่แล้วเราใช้ฟังก์ชัน scale() เมื่อเราต้องการปรับขนาดค่าของหลายคอลัมน์ใน data frame เพื่อให้แต่ละคอลัมน์มีค่าเฉลี่ยเป็น 0 และค่าเบี่ยงเบนมาตรฐานเป็น 1
ตัวอย่างเช่น สมมติว่าเรามี data frame ต่อไปนี้ใน R:
#create data frame df <- data. frame (x=c(1, 2, 3, 4, 5, 6, 7, 8, 9), y=c(10, 20, 30, 40, 50, 60, 70, 80, 90)) #view data frame df xy 1 1 10 2 2 20 3 3 30 4 4 40 5 5 50 6 6 60 7 7 70 8 8 80 9 9 90
โปรดทราบว่าช่วงของค่าของตัวแปร y นั้นใหญ่กว่าช่วงของค่าของตัวแปร x มาก
เราสามารถใช้ฟังก์ชัน scale() เพื่อปรับขนาดค่าในสองคอลัมน์ โดยค่ามาตราส่วน x และ y ทั้งคู่มีค่าเฉลี่ยเป็น 0 และค่าเบี่ยงเบนมาตรฐานเป็น 1:
#scale values in each column of data frame df_scaled <- scale(df) #view scaled data frame df_scaled xy [1,] -1.4605935 -1.4605935 [2,] -1.0954451 -1.0954451 [3,] -0.7302967 -0.7302967 [4,] -0.3651484 -0.3651484 [5,] 0.0000000 0.0000000 [6,] 0.3651484 0.3651484 [7,] 0.7302967 0.7302967 [8,] 1.0954451 1.0954451 [9,] 1.4605935 1.4605935
ตอนนี้คอลัมน์ x และ y มีค่าเฉลี่ยเป็น 0 และส่วนเบี่ยงเบนมาตรฐานเป็น 1
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน R:
วิธีทำให้ข้อมูลเป็นมาตรฐานใน R
วิธีสร้างมาตรฐานข้อมูลใน R
วิธีเฉลี่ยคอลัมน์ใน R