วิธีแก้ไขใน r: ค่าหายไปโดยจำเป็นต้องมีค่าจริง/เท็จ
ข้อผิดพลาดที่คุณอาจพบใน R คือ:
Error in if (x[i] == NA) {: missing value where TRUE/FALSE needed
ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณเปรียบเทียบค่ากับ NA ในคำสั่ง if ใน R โดยใช้ไวยากรณ์ x == NA
คำสั่ง if คาดหวังค่า TRUE หรือ FALSE ดังนั้นคุณควรใช้ is.na(x) แทน เนื่องจากฟังก์ชันนี้จะส่งคืน TRUE หรือ FALSE เสมอ
วิธีการทำซ้ำข้อผิดพลาด
สมมติว่าเรากำลังพยายามวนซ้ำรายการค่าในเวกเตอร์ใน R และพิมพ์คำว่า “หายไป” ทุกครั้งที่มีค่า NA ในเวกเตอร์:
#define vector with some missing values x <- c(2, NA, 5, 6, NA, 15, 19) #loop through vector and print "missing" each time an NA value is encountered for (i in 1:length(x)) { if (x[i] == NA) { print(' Missing ') } } Error in if (x[i] == NA) {: missing value where TRUE/FALSE needed
เราได้รับข้อผิดพลาดเนื่องจากเราใช้ไวยากรณ์ x[i] == NA
วิธีการแก้ไขข้อผิดพลาด
เราจำเป็นต้องเปลี่ยนไวยากรณ์เป็น is.na(x) ดังนี้:
#define vector with some missing values x <- c(2, NA, 5, 6, NA, 15, 19) #loop through vector and print "missing" each time an NA value is encountered for (i in 1:length(x)) { if (is. na (x[i])) { print(' Missing ') } } [1] “Missing” [1] “Missing”
โปรดทราบว่าเราไม่ได้รับข้อผิดพลาดและสามารถพิมพ์คำว่า “หายไป” เมื่อใดก็ตามที่เราพบค่า NA ในเวกเตอร์
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่น ๆ ใน R:
วิธีแก้ไข: NAs ถูกแนะนำโดย Coercion
วิธีแก้ไข: จำนวนดัชนีบนเมทริกซ์ไม่ถูกต้อง
วิธีการซ่อมแซม: จำนวนรายการที่ต้องเปลี่ยนไม่ใช่ผลคูณของความยาวในการเปลี่ยน