วิธีจัดการค่า nan ใน r (พร้อมตัวอย่าง)
ใน R NaN ย่อมาจาก Not a Number
โดยทั่วไปแล้ว ค่า NaN จะเกิดขึ้นเมื่อคุณพยายามคำนวณซึ่งส่งผลให้ได้ผลลัพธ์ที่ไม่ถูกต้อง
ตัวอย่างเช่น การหารด้วยศูนย์หรือการคำนวณบันทึกของจำนวนลบ ทั้งคู่จะสร้างค่า NaN:
#attempt to divide by zero 0 / 0 [1]NaN #attempt to calculate log of negative value log(-12) [1]NaN
โปรดทราบว่าค่า NaN แตกต่างจากค่า NA ซึ่งเพียงแต่แสดงถึงค่าที่หายไป
คุณสามารถใช้วิธีการต่อไปนี้เพื่อจัดการค่า NaN ใน R:
#identify positions in vector with NaN values which(is. nan (x)) #count total NaN values in vector sum(is. nan (x)) #remove NaN values in vector x_new <- x[!is. no (x)] #replace NaN values in vector x[is. nan (x)] <- 0
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติ
ตัวอย่างที่ 1: ระบุตำแหน่งในเวกเตอร์ด้วยค่า NaN
รหัสต่อไปนี้แสดงวิธีการระบุตำแหน่งในเวกเตอร์ที่มีค่า NaN:
#create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)
#identify positions with NaN values
which(is. nan (x))
[1] 2 4
จากผลลัพธ์เราจะเห็นว่าองค์ประกอบที่ตำแหน่ง 2 และ 4 ในเวกเตอร์คือค่า NaN
ตัวอย่างที่ 2: การนับค่า NaN ทั้งหมดในเวกเตอร์
รหัสต่อไปนี้แสดงวิธีนับจำนวนค่า NaN ทั้งหมดในเวกเตอร์ใน R:
#create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)
#identify positions with NaN values
sum(is. nan (x))
[1] 2
จากผลลัพธ์เราจะเห็นว่าในเวกเตอร์มีค่า NaN ทั้งหมด 2 ค่า
ตัวอย่างที่ 3: ลบค่า NaN ในเวกเตอร์
รหัสต่อไปนี้แสดงวิธีสร้างเวกเตอร์ใหม่โดยลบค่า NaN ออกจากเวกเตอร์ดั้งเดิม:
#create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)
#define new vector with NaN values removed
x_new <- x[!is. no (x)]
#view new vector
x_new
[1] 1 12 50 30
โปรดทราบว่าค่า NaN ทั้งสองค่าได้ถูกลบออกจากเวกเตอร์แล้ว
ตัวอย่างที่ 4: แทนที่ค่า NaN ในเวกเตอร์
รหัสต่อไปนี้แสดงวิธีแทนที่ค่า NaN ในเวกเตอร์ด้วยศูนย์:
#create vector with some NaN values
x <- c(1, NaN, 12, NaN, 50, 30)
#replace NaN values with zero
x[is. nan (x)] <- 0
#view updated vector
x
[1] 1 0 12 0 50 30
โปรดทราบว่าค่า NaN ทั้งสองถูกแทนที่ด้วยศูนย์ในเวกเตอร์
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีแก้ไขค่าที่หายไปใน R
วิธีค้นหาและนับค่าที่หายไปใน R
วิธีใช้ “ไม่ใช่ NA” ใน R