วิธีลบค่าผิดปกติออกจากหลายคอลัมน์ใน r
บ่อยครั้งที่คุณอาจต้องการลบค่าผิดปกติออกจากหลายคอลัมน์พร้อมกันใน R
วิธีทั่วไปในการนิยามการสังเกตว่าเป็นค่าผิดปกติคือ มีค่าเป็น 1.5 เท่าของพิสัยระหว่างควอร์ไทล์เหนือควอไทล์ที่ 3 (Q3) หรือ 1.5 เท่าของพิสัยระหว่างควอไทล์ที่ต่ำกว่าควอร์ไทล์ที่ 1 (Q1)
เมื่อใช้คำจำกัดความนี้ เราสามารถใช้ขั้นตอนต่อไปนี้เพื่อสร้างฟังก์ชันง่ายๆ เพื่อระบุค่าผิดปกติ จากนั้นใช้ฟังก์ชันนี้กับหลายคอลัมน์ในกรอบข้อมูล R
ขั้นตอนที่ 1: สร้างกรอบข้อมูล
เริ่มต้นด้วยการสร้าง data frame ใน R:
df <- data.frame(index=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
var1=c(4, 4, 5, 4, 3, 2, 8, 9, 4, 5),
var2=c(1, 2, 4, 4, 6, 9, 7, 8, 5, 29),
var3=c(9, 9, 9, 5, 5, 3, 4, 5, 11, 34))
ขั้นตอนที่ 2: กำหนดฟังก์ชันค่าผิดปกติ
ต่อไป เรามากำหนดฟังก์ชันที่สามารถระบุค่าผิดปกติและฟังก์ชันที่สามารถลบค่าผิดปกติได้:
outliers <- function (x) { Q1 <- quantile(x, probs =.25) Q3 <- quantile(x, probs =.75) iqr = Q3-Q1 upper_limit = Q3 + (iqr*1.5) lower_limit = Q1 - (iqr*1.5) x > upper_limit | x < lower_limit } remove_outliers <- function (df, cols = names (df)) { for (col in cols) { df <- df[!outliers(df[[col]]),] } df }
ขั้นตอนที่ 3: ใช้ฟังก์ชันค่าผิดปกติกับกรอบข้อมูล
สุดท้ายนี้ ลองใช้ฟังก์ชันนี้กับหลายคอลัมน์ของกรอบข้อมูลเพื่อลบค่าผิดปกติ:
remove_outliers(df, c('var1', 'var2', 'var3'))
index var1 var2 var3
1 1 4 1 9
2 2 4 2 9
3 3 5 4 9
4 4 4 4 5
5 5 3 6 5
9 9 4 5 11
คุณสามารถค้นหาบทช่วยสอน R เพิ่มเติมได้ ที่นี่