Я беру правила из дерева решений и имею следующий текст:
dev_amount_720 <= 2212
dev_orders_1440 <= 81
dev_orders_5760 > 55
dev_amount_5760 > 1649
Что мне нужно сделать, так это отфильтровать мой набор данных по этим значениям и выполнить подсчет. Например, я хочу как-то превратить это в этот вызов:
data[which(data$dev_amount_720 <= 2212 &
data$dev_orders_1440 <= 81 &
data$dev_orders_5760 > 55 &
data$dev_amount_5760 > 1649),]
Есть ли эффективный способ сделать это? Лучшее, что я придумала, это разделить строку:
> strsplit(rule_split[1], " ")[[1]]
[1] "dev_amount_720" "<=" "2212"
, который позволяет мне подгруппировать данные следующим образом:
data[which(data[<var>] <operator> <value>), ]
data[which(data["dev_amount_720"] <= 2212), ]
Однако, это не очень эффективно, так как есть сотни правил, к которым я должен применить эту процедуру.