Using R, I am trying to filter the ID's that have a specific "Decision" sequence, but the have to be in the same "Application" number. The "Decision" order needs to be C,D,E. So What I am looking for in here, is to get
Because The ID "805" has the "Decision" sequence C,D,E and they are in the same "Application" number.
I tried using, for loops, if else, filter but nothing worked for me.
You can achieve it using below data.table way.
require(data.table)
data <- data.table(
ID = c(804, 805, 805, 805, 805, 805, 805, 806, 806, 806),
Application = c(3, 2, 3, 3, 3, 3, 4, 2, 3, 3),
Decision = c("A", "B", "C", "D", "E", "A", "A", "B", "C", "E")
)
# Filter Condition on Decision
cond.Decision <- c("C", "D", "E")
data[
i = ID %in% data[
j = .(flg = all(cond.Decision %in% Decision)),
by = ID
][i = flg == TRUE, j = ID] & Decision %in% cond.Decision
]
ID Application Decision
1: 805 3 C
2: 805 3 D
3: 805 3 E