คุณยังสามารถทำงานกับเวกเตอร์บูลีนที่รู้จักlogical
กันว่า aka :
row_to_keep = c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE)
myData = myData[row_to_keep,]
โปรดทราบว่า!
ผู้ประกอบการทำหน้าที่เป็นไม่เช่น!TRUE == FALSE
:
myData = myData[!row_to_keep,]
ดูเหมือนว่าจะยุ่งยากเล็กน้อยเมื่อเปรียบเทียบกับคำตอบของ @ mrwab (+1 btw :)) แต่เวกเตอร์เชิงตรรกะสามารถสร้างขึ้นได้ทันทีเช่นที่ค่าคอลัมน์เกินค่าที่แน่นอน:
myData = myData[myData$A > 4,]
myData = myData[!myData$A > 4,] # equal to myData[myData$A <= 4,]
คุณสามารถแปลงเวกเตอร์บูลีนเป็นเวกเตอร์ของดัชนี:
row_to_keep = which(myData$A > 4)
ในที่สุดกลอุบายที่ประณีตมาก ๆ ก็คือคุณสามารถใช้การย่อยแบบนี้ไม่เพียง แต่สำหรับการแยกเท่านั้น แต่ยังสำหรับการมอบหมาย:
myData$A[myData$A > 4,] <- NA
โดยที่คอลัมน์A
ถูกกำหนดNA
(ไม่ใช่ตัวเลข) โดยที่A
เกินกว่า 4