Подмножество фрейма данных с использованием строковых объектов для переменной, оператора и значения - PullRequest
0 голосов
/ 14 марта 2019

Я беру правила из дерева решений и имею следующий текст:

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), ]

Однако, это не очень эффективно, так как есть сотни правил, к которым я должен применить эту процедуру.

...