2016-02-01 27 views
0

我試圖在符合特定行條件的數據框中保留/拆分組;在data.frame樣子:在一行上創建組條件

COW PARITY DFC ABCS 
1  1  1  0.5 
1  1  2  1 
1  1  3  0.25 
1  2  1  -0.3 
1  2  2  0.5 

我想建立羣組的COW相同的值,奇偶校驗其

ABCS>0 for DFC==1 

我嘗試用group_by + filter但我無法正確分裂。

回答

1

您可以嘗試使用邏輯子集,這樣的:

df1[df1$COW==df1$PARITY & df1$ABCS>0 & df1$DFC==1,] 
# COW PARITY DFC ABCS 
#1 1  1 1 0.5 

這考慮三個條件,具有邏輯AND(&)連接。首先,COWPARITY的值應該相等,那麼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))