วิธีจับจำนวนเต็ม (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