SubStringCount — функция скриптa и диаграммы
SubStringCount() возвращает количество вхождений указанной подстроки в тексте входной строки. Если совпадения отсутствуют, возвращается 0.
Синтаксис:
SubStringCount(text, sub_string)
Возвращаемые типы данных: integer
Аргумент | Описание |
---|---|
text | Оригинальная строка. |
sub_string | Строка, встречающаяся один или несколько раз во входной строке text. |
Пример | Результат |
---|---|
SubStringCount( 'abcdefgcdxyz', 'cd' ) | Возвращает 2 |
SubStringCount( 'abcdefgcdxyz', 'dc' ) | Возвращает 0 |
Пример. Основы использования функции SubStringCount
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
-
Набор данных, который загружается в таблицу данных под именем Example.
-
Одно поле в таблице данных под именем FruitSentence.
Скрипт загрузки
Example:
Load * inline [
FruitSentence
"I love eating an apple every day.Apple juice is great too!"
"Apple pie is my favorite dessert. I also enjoy apple jam."
"There is an apple and a banana on the table."
"I don't like apples as much as oranges."
"An apple a day keeps the doctor away, but two apples are even better!"
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:
-
FruitSentence
Создайте следующее вычисляемое измерение:
-
=SubStringCount(FruitSentence, 'apple'), чтобы рассчитать, сколько раз слово apple встречается в FruitSentence.
FruitSentence | SubStringCount(FruitSentence, 'apple') |
---|---|
An apple a day keeps the doctor away, but two apples are even better! | 2 |
Apple pie is my favorite dessert. I also enjoy apple jam. | 1 |
I don't like apples as much as oranges. | 1 |
I love eating an apple every day. Apple juice is great too! | 1 |
There is an apple and a banana on the table. | 1 |
Таблица сортируется по измерению FruitSentence в порядке возрастания. Функция SubStringCount возвращает число вхождений слова apple в каждом предложении. Например, в первом предложении возвращается 2, так как это слово встречается в предложении дважды. Во втором и четвертом предложениях функция игнорирует слово Apple, так как оно не соответствует регистру поискового запроса apple.
Следующий код показывает, как использовать эту функцию в скрипте загрузки. Этот пример включает предшествующую загрузку, которая использует функцию SubStringCount вместе с функцией Upper для преобразования всей строки в заглавные символы, а затем ищет слово APPLE.
Example:
Load *,
SubStringCount(Upper(FruitSentence),'APPLE') as SubStringCount_APPLE;
Load * inline [
FruitSentence
"I love eating an apple every day. Apple juice is great too!"
"Apple pie is my favorite dessert. I also enjoy apple jam."
"There is an apple and a banana on the table."
"I don't like apples as much as oranges."
"An apple a day keeps the doctor away, but two apples are even better!"
];
FruitSentence | SubStringCount_APPLE |
---|---|
I love eating an apple every day. Apple juice is great too! | 2 |
Apple pie is my favorite dessert. I also enjoy apple jam. | 2 |
There is an apple and a banana on the table. | 1 |
I don't like apples as much as oranges. | 1 |
An apple a day keeps the doctor away, but two apples are even better! | 2 |
Пример. Сценарий использования SubStringCount
Обзор
Набор данных о продуктах из категории «Фрукты» содержит поле с описаниями продуктов. В этом примере подсчитывается количество раз, когда в каждом описании встречаются следующие названия фруктов: яблоко, банан или апельсин.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
-
Набор данных, который загружается в таблицу данных под именем Example.
-
Одно поле в таблице данных под именем ProductDescription.
Скрипт загрузки
Example:
Load * inline [
ProductDescription
"Fresh apple and banana smoothie."
"Organic apple, banana, and orange juice. Great for breakfast."
"A refreshing orange soda made with real orange juice."
"Banana chips with apple and cinnamon flavor."
"Delicious apple pie with a hint of cinnamon and vanilla."
"Tropical banana and orange mix for smoothies."
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:
-
ProductDescription
Создайте следующие вычисляемые измерения:
-
=SubStringCount(ProductDescription, 'apple'), чтобы подсчитать количество вхождений слова apple в строке ProductDescription.
-
=SubStringCount(ProductDescription, 'banana'), чтобы подсчитать количество вхождений слова banana в строке ProductDescription.
-
=SubStringCount(ProductDescription, 'orange'), чтобы подсчитать количество вхождений слова orange в строке ProductDescription.
ProductDescription | SubStringCount(ProductDescription, 'apple') | SubStringCount(ProductDescription, 'banana') | SubStringCount(ProductDescription, 'orange') |
---|---|---|---|
A refreshing orange soda made with real orange juice. | 0 | 0 | 2 |
Banana chips with apple and cinnamon flavor. | 1 | 0 | 0 |
Delicious apple pie with a hint of cinnamon and vanilla. | 1 | 0 | 0 |
Fresh apple and banana smoothie. | 1 | 1 | 0 |
Organic apple, banana, and orange juice. Great for breakfast. | 1 | 1 | 1 |
Tropical banana and orange mix for smoothies. | 0 | 1 | 1 |
Вывод функции SubStringCount успешно возвращает количество вхождений каждой подстроки (apple, banana, orange) встречается в описании продукта. Например, в первом описании функция возвращает 2, потому что существует два экземпляра слова orange. Аргумент sub_string чувствителен к регистру, поэтому во втором описании функция не засчитает слово Banana, поскольку оно не совпадает с подстрокой banana в выражении меры.
Пример. Сценарий использования SubStringCount с разбором вложенных данных
Обзор
Набор данных записей ИТ содержит список идентификационных номеров изменений и категорий. В таблице данных поле Categories создано на основе многоуровневой иерархии, содержащей список верхних родительских категорий, за которыми следуют все подкатегории, например «Программное обеспечение > Программа > Исправление». Этот сценарий показывает, как выбрать последнее значение, или значение листа, из этой неровной иерархии категорий с помощью комбинации функций SubStringCount и SubField.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
-
Набор данных, который загружается в таблицу данных под именем Example.
-
Следующие поля в таблице данных:
-
ChangeID содержит исходный идентификатор изменения, который необходимо обработать.
-
Categories содержит список категорий изменений. Категории разделены точкой с запятой и перечислены в иерархическом порядке слева направо, начиная с верхней родительской категории и заканчивая самой детализированной подкатегорией.
-
Скрипт загрузки
Example:
Load * inline [
ChangeID,Categories
CHG00100,Software;Program;Patch
CHG00101,Hardware;Server
CHG00102,Hardware;Network;Router
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
-
ChangeID
-
Categories
Создайте следующие вычисляемые измерения:
-
=SubStringCount(Categories,';')+1, чтобы подсчитать количество уровней категорий в иерархии изменений.
-
=SubField(Categories, ';' ,SubStringCount(Categories,';')+1), чтобы извлечь крайнюю правую категорию в иерархии изменений.
ChangeID | Categories | SubStringCount(Categories,';')+1 | SubField(Categories, ';' ,SubStringCount(Categories,';')+1) |
---|---|---|---|
CHG00100 | Software;Program;Patch | 3 | Patch |
CHG00101 | Hardware;Server | 2 | Server |
CHG00102 | Hardware;Network;Router | 3 | Router |
В этом примере функция SubStringCount вложена в функцию SubField. Первое вычисляемое измерение, SubStringCount(), подсчитывает количество вложенных значений в поле Categories. Это определяется путем подсчета количества разделителей «точка с запятой» (';') и прибавления 1 к результату. Этот вывод затем передается в качестве третьего параметра функции SubField для извлечения крайней правой категории, вложенной в поле Categories.
В качестве примера рассмотрим результаты для записи ChangeID CHG00100. В первом вычисляемом измерении значение SubStringCount равно 2. Затем выражение добавляет 1 к этому результату для определения того, что поле Categories имеет три вложенных значения категории, Software, Program и Patch. Функция SubField во втором вычисляемом измерении затем использует этот результат для извлечения третьей категории, Patch.