Приложение для анализа и обработки данных KNIME: множественный фильтр - Rule Engine
Множественный фильтр в Knime
Рассмотрим пример, когда в Excel необходимо отобрать значения в колонке по множеству критериев числовыми или настраиваемыми фильтрами, открытие каждого нового условия в новом окне и т.д. Если нужно добавить еще и новое поле с соответствием отфильтрованных ячеек определенному классификатору, задача может превратиться в долгую рутину. В Knime этот вопрос решается по другому.
В примере с дежурными и количеством отработанных дней рассмотрим как работает нода Rule Engine. Для начала посмотрим окно свойств ноды:
• Column List – список колонок таблицы, поданной на вход, которые и будем анализировать (в нашем примере мы подадим таблицу «имя дежурного – количество отработанных дней»;
• Flow variable list – список переменных в нашем Workflow. Здесь они пока не нужны. Работа с переменными – предмет отдельного большого обсуждения;
• Function – список операндов, которые будем применять к значениям полей, поданных на вход;
• Category – выпадающий список операндов по категориям;
• Description – описание выбранного операнда;
• Expression – самое важное поле. Здесь будем построчно прописывать выражения для классификации наших значений. Пример синтаксиса уже приведен в виде «закомменченных» строк. На самом деле, все довольно интуитивно понятно и при удачном раскладе писать почти ничего не придется – только щелкать мышкой);
• Append column/Replace column – здесь выбираем, хотим ли добавить к таблице на входе новую колонку в которой укажем значение по классификатору либо будем заменять значение в одной из существующих.
В примере в поле Workflow по подсчету дней на каждого дежурного соединяем ноду Value Counter с Rule Engine. Теперь необходимо прописать в поле Expression правила классификации: будем анализировать содержимое ячеек с именем и искать Олега. Открываем свойства ноды, смотрим, что пришло на вход из предыдущей. Мы будем оперировать с ROW ID, поскольку там зашито имя дежурного. Прописываем в Expression такой код:
$$ROWID$$ LIKE "Олег" OR $$ROWID$$ LIKE "олег" => "Это точно Олег"
NOT ($$ROWID$$ LIKE "Олег" OR $$ROWID$$ LIKE "олег") => "Это точно НЕ Олег"
Все сущности на входе и все операнды можно не прописывать вручную, а доставать из списков двойным щелчком. Указываем имя колонки для вывода классификации, смотрим, что получилось.
© ООО «Знанио»
С вами с 2009 года.