Bạn cũng có thể làm việc với một vectơ boolean, còn gọi là logical
:
row_to_keep = c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE)
myData = myData[row_to_keep,]
Lưu ý rằng !
toán tử hoạt động như một KHÔNG, tức là !TRUE == FALSE
:
myData = myData[!row_to_keep,]
Điều này có vẻ hơi cồng kềnh so với câu trả lời của @ mrwab (+1 btw :)), nhưng một vectơ logic có thể được tạo khi đang bay, ví dụ: khi giá trị cột vượt quá một giá trị nhất định:
myData = myData[myData$A > 4,]
myData = myData[!myData$A > 4,] # equal to myData[myData$A <= 4,]
Bạn có thể chuyển đổi một vectơ boolean thành một vectơ chỉ mục:
row_to_keep = which(myData$A > 4)
Cuối cùng, một mẹo rất gọn gàng là bạn có thể sử dụng loại tập hợp con này không chỉ để trích xuất mà còn để gán:
myData$A[myData$A > 4,] <- NA
trong đó cột A
được gán NA
(không phải là số) trong đó A
vượt quá 4.