您可以嘗試使用邏輯子集,這樣的:
df1[df1$COW==df1$PARITY & df1$ABCS>0 & df1$DFC==1,]
# COW PARITY DFC ABCS
#1 1 1 1 0.5
這考慮三個條件,具有邏輯AND(&
)連接。首先,COW
和PARITY
的值應該相等,那麼ABCS
的值應該大於0,最後DFC
的值應該等於1。在上面的例子中,只有一個觀察(行)滿足這三個條件。
編輯
繼@docendodiscimus建議的命令可以通過使用with()
,例如像這樣被縮短並呈現更清晰:
df1[with(df1,COW==PARITY & ABCS>0 & DFC==1),]
數據
df1 <- structure(list(COW = c(1L, 1L, 1L, 1L, 1L),
PARITY = c(1L, 1L, 1L, 2L, 2L), DFC = c(1L, 2L, 3L, 1L, 2L),
ABCS = c(0.5, 1, 0.25, -0.3, 0.5)),
.Names = c("COW", "PARITY", "DFC", "ABCS"),
class = "data.frame", row.names = c(NA,-5L))