วิธีจับจำนวนเต็ม (0) ใน r (พร้อมตัวอย่าง)


บางครั้งเมื่อคุณใช้ฟังก์ชัน which() ใน R คุณอาจได้ เลขจำนวนเต็ม (0) ซึ่งบ่งชี้ว่าไม่มีองค์ประกอบใดในเวกเตอร์ประเมินค่าเป็น TRUE

ตัวอย่างเช่น สมมติว่าเราใช้โค้ดต่อไปนี้เพื่อตรวจสอบว่าองค์ประกอบของเวกเตอร์ใดมีค่าเท่ากับ 10:

 #define vector of values
data <- c(1, 2, 4, 4, 5, 7, 8, 9)

#find elements in vector equal to 10
x <- which(data == 10 )

#view results
x

integer(0)

เนื่องจากไม่มีองค์ประกอบใดในเวกเตอร์เท่ากับ 10 ผลลัพธ์จึงเป็นจำนวนเต็มความยาว 0 เขียนเป็น จำนวนเต็ม (0) ใน R

สิ่งสำคัญที่ต้องทราบคือ จำนวนเต็ม (0) ไม่ใช่ข้อผิดพลาด แต่บางครั้งคุณอาจต้องการทราบว่ามันเกิดขึ้นเมื่อใด

ตัวอย่างต่อไปนี้แสดงวิธีการจับ จำนวนเต็ม (0) ใน R

ตัวอย่างที่ 1: จับจำนวนเต็ม (0) ใน R โดยใช้ฟังก์ชันที่เหมือนกัน ()

วิธีที่ง่ายที่สุดในการหา จำนวนเต็ม (0) ใน R คือการใช้ฟังก์ชัน ที่เหมือนกัน () ดังนี้:

 #define vector of values
data <- c(1, 2, 4, 4, 5, 7, 8, 9)

#find elements in vector equal to 10
x <- which(data == 10 )

#test if x is identical to integer(0)
identical(x, integer(0))

[1] TRUE

เนื่องจากผลลัพธ์ของเราเท่ากับ จำนวนเต็ม (0) R จึงส่งกลับ TRUE

สิ่งนี้ทำให้เรารู้ว่าผลลัพธ์ของฟังก์ชัน which() เป็นจำนวนเต็มความยาว 0

ตัวอย่างที่ 2: การหาจำนวนเต็ม (0) ใน R โดยใช้ฟังก์ชัน if else

อีกวิธีหนึ่งในการตรวจจับ จำนวนเต็ม (0) คือการกำหนดฟังก์ชัน if else ที่จะส่งคืนค่าเฉพาะหากเกิด จำนวนเต็ม (0)

ตัวอย่างเช่น เราสามารถกำหนดฟังก์ชันต่อไปนี้เพื่อส่งคืนวลี “It’s an integer (0)” ถ้า จำนวนเต็ม (0) ปรากฏขึ้น:

 #define function to catch integer(0)
integer0_test <- function (data) {
 
  if (identical(data, integer(0))) {
    return (' It is an integer(0) ')
  }

  else {
    return (data)
  }

}

จากนั้นเราสามารถใช้ฟังก์ชันนี้:

 #define vector of values
data <- c(1, 2, 4, 4, 5, 7, 8, 9)

#find elements in vector equal to 10
x <- which(data == 10 )

#use function to test if x is integer(0)
integer0_test(x)

[1] "It is an integer(0)"

เนื่องจาก x เป็น จำนวนเต็ม (0) จริงๆ ฟังก์ชันของเราจึงส่งคืนประโยคที่เราระบุ

และถ้า x ไม่ใช่ จำนวนเต็ม (0) ฟังก์ชันของเราจะส่งคืนผลลัพธ์ของฟังก์ชัน which():

 #define vector of values
data <- c(1, 2, 4, 4, 5, 7, 8, 9)

#find elements in vector equal to 4
x <- which(data == 4 )

#use function to test if x is integer(0)
integer0_test(x)

[1] 3 4

ฟังก์ชันของเราส่งคืน 3 และ 4 เพราะนี่คือตำแหน่งขององค์ประกอบเวกเตอร์ที่เท่ากับค่า 4

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:

วิธีเขียนฟังก์ชัน tryCatch() แรกของคุณใน R
วิธีสร้าง For loop ที่ซ้อนกันใน R
วิธีคืนค่าฟังก์ชันใน R

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

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