inc

Назначение

Функция inc генерирует автоматически приращенное (инкрементированное) число при каждом запуске функции. Название функции inc - сокращение от слова increment (приращение). В PolyAnalyst это совпадает с каждой оценкой строки в таких узлах, как Производные колонки или Фильтрация строк.

При первом запуске функции inc на первой строке обычно возвращается значение 0.

При втором запуске функции inc на второй строке обычно возвращается значение 1, при третьем запуске - 2, при четвертом - 3 и так далее.

В техническом плане функция inc не ограничивается приращением на 1. Вы указываете значение, на которое нужно увеличить функцию.

inc(2) приращивается на 2, давая значения 0,2,4,6,8,10 и т.д.

inc(1) - наиболее часто используемая форма функции inc, при этом возвращаются значения 0,1,2,3,4 и так далее.

В проекте функцию inc можно использовать во многих различных ситуациях. Если вы хотите идентифицировать каждую строку таблицы, используйте узел Производные колонки для создания новой колонки, которая содержит уникальный идентификатор каждой строки. Этот идентификатор уникален, поскольку функция inc не будет возвращать одно и то же значение для каждой строки, т.к. оно всегда приращается на одну строку.

Обратите внимание, что функция inc не является ни единственным, ни уникальным методом назначения первичного ключа (уникального идентификатора) для таблицы; вы можете сделать это, просто импортируя таблицу с помощью опции "Идентификатор строки" в настройках узла источника данных. Для получения подробной информации по определению уникального идентификатора см. раздел по узлам источников данных в справочнике узлов. В связи этим функцию inc предпочтительно использовать тогда, когда невозможно назначить новую таблицу, используя узлы PolyAnalyst (что означает, что была импортирована), или выполняете пересортировку записей.

Работа функции inc зависит от естественного порядка строк в оцениваемой таблице. Например, если вы используете узел Сортировка строк, чтобы изменить таблицу, перед тем, как использовать узел Производные колонки, чтобы добавить колонку, содержащую выходные данные функции inc, то в итоге вы будете назначать новые уникальные значения в новой колонке для каждой строки. До оценки колонки в узле Производные колонки или Фильтрация не нужно ожидать от функции inc тех же результатов, если порядок строк в этой колонке был каким-либо образом изменен.

Если вы используете функцию inc несколько раз в одном выражении, обратите внимание, что функция inc оценивается ОДИН РАЗ для всего выражения на строку. Она не оценивается при каждом использовании ее в выражении.

В выражении inc(1) + inc(1) для первой записи получаем 0 + 0, что дает 0. Мы не получаем 0 + 1, что дает 1.

Для второй записи в этом примере получаем 1 + 1, не 2 + 3, что дает 2.

Функция inc всегда начинается со значения 0. Вы можете получить другое значение, используя возвращаемое значение как числовой аргумент.

inc(1) + 1 даст вам те же результаты, но начиная со значения 1 вместо 0.

Можно также использовать отрицательное приращенное значение и получить эффект убывания. Аргумент, включенный в функцию inc добавляется к предыдущему возвращаемому значению. Следовательно, если включить отрицательное значение, то возвращаемое значение снизится на это число.

inc(-1) вычитает из предыдущего результата 1, что дает последовательность 0,-1,-2,-3,-4 и так далее

Эквивалентная функция dec (от англ. decrement - убывание) в PolyAnalyst отсутствует, следовательно получить желаемое в данном случае поведение можно только с помощью описанного способа.

Функция inc - математическая.

Синтаксис

inc(число, [reset := условие])

Аргументы

Функция требует наличия одного аргумента, представленного целым числом. Если аргумент представлен не целым числом, то появляется сообщение об ошибке.

Вы также можете добавить второй необязательный аргумент для настройки условия генерации приращенных чисел. Например, можно настроить функцию на генерирование приращенных чисел только для определенной группы значений в колонках.

Возвращаемое значение

Если аргумент нулевой, то функция inc возвращает 0. В противном случае функция inc возвращает целое число, которое увеличивается на значение аргумента приращения при каждом запуске функции для полной строки данных (не для вызова функции в выражении).

При использовании второго необязательного аргумента функция возвращает 0, если удовлетворено указанное условие.

Примеры

Выражение

Возвращаемое значение (по строке)

inc(1)

0,1,2,3,4,…​

inc(-1)

0,-1,-2,-3,-4, …​

inc(2)

0,2,4,5,6,…​

inc(1, reset := Mpg > 20)

возвращает 0, если значение в колонке Mpg больше 20;
в противном случае возвращает 0,1,2,3,4,…​