我正在尝试在符合特定行条件的数据框中保留/拆分组; 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
,但我无法正确分割。
答案 0 :(得分:1)
您可以尝试使用逻辑子集,如下所示:
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()
缩短命令并使其更清晰,例如:{/ p>
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))