วิธีดำเนินการล้างข้อมูลใน r (พร้อมตัวอย่าง)
การล้างข้อมูล หมายถึงกระบวนการแปลง ข้อมูลดิบ ให้เป็นข้อมูลที่เหมาะสมสำหรับการวิเคราะห์หรือการสร้างแบบจำลอง
ในกรณีส่วนใหญ่ การ “ล้าง” ชุดข้อมูลเกี่ยวข้องกับการจัดการกับค่าที่หายไปและข้อมูลที่ซ้ำกัน
ต่อไปนี้เป็นวิธีการทั่วไปในการ “ล้าง” ชุดข้อมูลใน R:
วิธีที่ 1: ลบแถวที่มีค่าหายไป
library (dplyr) #remove rows with any missing values df %>% na. omit ()
วิธีที่ 2: แทนที่ค่าที่หายไปด้วยค่าอื่น
library (dplyr) library (tidyr) #replace missing values in each numeric column with median value of column df %>% mutate(across(where(is. numeric ), ~replace_na(., median(., na. rm = TRUE ))))
วิธีที่ 3: ลบแถวที่ซ้ำกัน
library (dplyr) df %>% distinct(. keep_all = TRUE )
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้ใน R ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:
#create data frame df <- data. frame (team=c('A', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'), points=c(4, 4, NA, 8, 6, 12, 14, 86, 13, 8), rebounds=c(9, 9, 7, 6, 8, NA, 9, 14, 12, 11), assists=c(2, 2, NA, 7, 6, 6, 9, 10, NA, 14)) #view data frame df team points rebound assists 1 to 4 9 2 2 to 4 9 2 3 B NA 7 NA 4 C 8 6 7 5 D 6 8 6 6 E 12 NA 6 7 F 14 9 9 8 G 86 14 10 9:13:12 NA 10 I 8 11 14
ตัวอย่างที่ 1: ลบแถวที่มีค่าหายไป
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อลบแถวที่มีค่าหายไปในคอลัมน์ใดก็ได้:
library (dplyr) #remove rows with missing values new_df <- df %>% na. omit () #view new data frame new_df team points rebound assists 1 to 4 9 2 2 to 4 9 2 4 C 8 6 7 5 D 6 8 6 7 F 14 9 9 8 G 86 14 10 10 I 8 11 14
โปรดทราบว่ากรอบข้อมูลใหม่ไม่มีแถวที่มีค่าขาดหายไป
ตัวอย่างที่ 2: แทนที่ค่าที่หายไปด้วยค่าอื่น
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อแทนที่ค่าที่หายไปด้วยค่ามัธยฐานของแต่ละคอลัมน์:
library (dplyr) library (tidyr) #replace missing values in each numeric column with median value of column new_df <-df %>% mutate(across(where(is. numeric ),~replace_na(.,median(.,na. rm = TRUE )))) #view new data frame new_df team points rebound assists 1 to 4 9 2.0 2 to 4 9 2.0 3 B 8 7 6.5 4 C 8 6 7.0 5 D 6 8 6.0 6 E 12 9 6.0 7 F 14 9 9.0 8 G 86 14 10.0 9:13 12 6.5 10 I 8 11 14.0
โปรดทราบว่าค่าที่หายไปในแต่ละคอลัมน์ตัวเลขจะถูกแทนที่ด้วยค่ามัธยฐานของคอลัมน์
โปรดทราบว่าคุณสามารถแทนที่ ค่ามัธยฐาน ในสูตรด้วย ค่าเฉลี่ย เพื่อแทนที่ค่าที่หายไปด้วยค่าเฉลี่ยของแต่ละคอลัมน์ได้
หมายเหตุ : เรายังต้องโหลดแพ็คเกจ Tidyr ในตัวอย่างนี้ด้วย เนื่องจากฟังก์ชัน drop_na() มาจากแพ็คเกจนั้น
ตัวอย่างที่ 3: ลบแถวที่ซ้ำกัน
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อแทนที่ค่าที่หายไปด้วยค่ามัธยฐานของแต่ละคอลัมน์:
library (dplyr) #remove duplicate rows new_df <- df %>% distinct(. keep_all = TRUE ) #view new data frame new_df team points rebound assists 1 to 4 9 2 2 B NA 7 NA 3 C 8 6 7 4 D 6 8 6 5 E 12 NA 6 6 F 14 9 9 7 G 86 14 10 8:13:12 NA 9 I 8 11 14
โปรดทราบว่าแถวที่สองถูกลบออกจากกรอบข้อมูลเนื่องจากแต่ละค่าในแถวที่สองซ้ำกับค่าในแถวแรก
หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน dplyr แตกต่าง() ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีจัดกลุ่มและสรุปข้อมูลใน R
วิธีสร้างตารางสรุปใน R
วิธีลบแถวที่มีค่าหายไปใน R