my.data.frame <- subset(data , V1 > 2 | V2 < 4)
ทางเลือกอื่นที่เลียนแบบพฤติกรรมของฟังก์ชั่นนี้และจะเหมาะสมกว่าสำหรับการรวมไว้ในส่วนของฟังก์ชั่น:
new.data <- data[ which( data$V1 > 2 | data$V2 < 4) , ]
บางคนวิพากษ์วิจารณ์การใช้which
ที่ไม่จำเป็น แต่ก็ป้องกันไม่ให้NA
คุณค่ากลับมาทิ้งผลลัพธ์ที่ไม่พึงประสงค์ ค่าเทียบเท่า (.ie ไม่ส่งคืนแถว NA สำหรับ NA ใด ๆ ใน V1 หรือ V2) ไปยังสองตัวเลือกที่แสดงด้านบนโดยไม่ต้องwhich
มี:
new.data <- data[ !is.na(data$V1 | data$V2) & ( data$V1 > 2 | data$V2 < 4) , ]
หมายเหตุ: ฉันต้องการขอบคุณผู้มีส่วนร่วมนิรนามที่พยายามแก้ไขข้อผิดพลาดในโค้ดด้านบนทันทีการแก้ไขที่ผู้ดูแลถูกปฏิเสธ มีข้อผิดพลาดเพิ่มเติมที่ฉันสังเกตเห็นเมื่อฉันแก้ไขข้อผิดพลาดแรก ประโยคเงื่อนไขที่ตรวจสอบค่า NA จำเป็นต้องเป็นอันดับแรกหากมีการจัดการตามที่ฉันต้องการเนื่องจาก ...
> NA & 1
[1] NA
> 0 & NA
[1] FALSE
ลำดับของการขัดแย้งอาจมีความสำคัญเมื่อใช้ '& "