วิธีแก้ไขใน 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
วิธีแก้ไข: จำนวนดัชนีบนเมทริกซ์ไม่ถูกต้อง
วิธีการซ่อมแซม: จำนวนรายการที่ต้องเปลี่ยนไม่ใช่ผลคูณของความยาวในการเปลี่ยน

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *