【发布时间】:2019-02-20 22:28:13
【问题描述】:
我有一个如下所示的数据框:
Status ID
A 1
B 1
B 1
A 1
B 1
A 1
A 2
A 2
A 2
A 2
B 3
B 3
B 3
为了说明我想要的输出,请看下面:
Status ID
B 1
B 1
B 1
A 2
A 2
A 2
A 2
B 3
B 3
B 3
如您所见,唯一改变的是组 ID = 1。如果组同时包含“A”和“B”状态,我想删除“A”状态。
但是,组 ID 2 和 3 没有改变(即没有删除行),因为:如果每个组 ID 只包含一个“A”,那么它将保持不变。同样,如果每个组 ID 只包含一个“B”,它也将保持不变。因此两者保持不变。
使用 dplyr,这是我的尝试:
library(dplyr)
df1_clean <- df1 %>% group_by(ID, Status)
%>% filter(ifelse((Status == A | Status == B), Status == B,
ifelse((Status == A), Status == A,
ifelse((Status == B), Status == B))))
但是,此过滤器不起作用。任何帮助将不胜感激!
【问题讨论】: