SubStringCount – função de script e gráfico
SubStringCount() retorna o número de ocorrências da subsequência especificada no texto da string de entrada. Se não houver uma correspondência, será retornado 0.
Sintaxe:
SubStringCount(text, sub_string)
Tipo de dados de retorno: inteiro
Argumento | Descrição |
---|---|
text | A string original. |
sub_string | Uma string que pode ocorrer uma ou mais vezes dentro da string de entrada text. |
Exemplo | Resultado |
---|---|
SubStringCount( 'abcdefgcdxyz', 'cd' ) | Retorna 2 |
SubStringCount( 'abcdefgcdxyz', 'dc' ) | Retorna 0 |
Exemplo - Fundamentos de SubStringCount
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
-
Um conjunto de dados que é carregado em uma tabela de dados denominada Example.
-
Um campo na tabela de dados chamado FruitSentence.
Script de carregamento
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!"
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:
-
FruitSentence
Crie a seguinte dimensão calculada:
-
=SubStringCount(FruitSentence, 'apple') para calcular quantas vezes a palavra apple ocorre em 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 |
A tabela é classificada na dimensão FruitSentence em ordem crescente. A função SubStringCount retorna o número de vezes que a palavra apple ocorre em cada frase. Por exemplo, a primeira frase retorna 2, porque a palavra ocorre duas vezes na frase. Na segunda e quarta frases, a função ignora a palavra Apple porque ela não corresponde à capitalização do termo de pesquisa apple.
O código a seguir mostra como usar a função em um script de carregamento. Este exemplo inclui um carregamento anterior que usa a função SubStringCount com a função Upper para converter toda a string em caracteres maiúsculos e, em seguida, pesquisa a palavra 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 |
Exemplo - Cenário de SubStringCount
Visão geral
Um conjunto de dados de produtos de frutas contém um campo com descrições de produtos. Este exemplo calcula o número de vezes que os seguintes nomes de frutas ocorrem em cada descrição: maçã, banana ou laranja.
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
-
Um conjunto de dados que é carregado em uma tabela de dados denominada Example.
-
Um campo na tabela de dados chamado ProductDescription.
Script de carregamento
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."
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:
-
ProductDescription
Crie as seguintes dimensões calculadas:
-
=SubStringCount(ProductDescription, 'apple') para calcular o número de ocorrências da palavra apple na string ProductDescription.
-
=SubStringCount(ProductDescription, 'banana') para calcular o número de ocorrências da palavra banana na string ProductDescription.
-
=SubStringCount(ProductDescription, 'orange') para calcular o número de ocorrências da palavra orange na string 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 |
A saída da função SubStringCount retorna com êxito o número de instâncias em que cada substring (apple, banana, orange) ocorre na descrição do produto. Por exemplo, na primeira descrição, a função retorna 2 porque há duas instâncias da palavra orange. O argumento sub_string diferencia maiúsculas de minúsculas, portanto, na segunda descrição, a função não conta a palavra Banana porque ela não corresponde à substring banana na expressão da medida.
Exemplo - Cenário de SubStringCount analisando dados aninhados
Visão geral
Um conjunto de dados de registros de TI contém uma lista de números de ID de alteração e categorias. Na tabela de dados, o campo Categories é derivado de uma hierarquia de vários níveis que lista a categoria pai superior seguida de todas as subcategorias, por exemplo, Software > Programa > Patch. Esse cenário demonstra como selecionar o último valor, ou valor folha, dessa hierarquia de categoria irregular usando uma combinação das funções SubStringCount e SubField.
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
-
Um conjunto de dados que é carregado em uma tabela de dados denominada Example.
-
Os campos a seguir na tabela de dados:
-
ChangeID contém o ID de alteração original a ser processado.
-
Categories contém uma lista de categorias de alteração. As categorias são separadas por ponto e vírgula e listadas em ordem hierárquica da esquerda para a direita, começando pela categoria principal até a subcategoria mais detalhada.
-
Script de carregamento
Example:
Load * inline [
ChangeID,Categories
CHG00100,Software;Program;Patch
CHG00101,Hardware;Server
CHG00102,Hardware;Network;Router
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
-
ChangeID
-
Categories
Crie as seguintes dimensões calculadas:
-
=SubStringCount(Categories,';')+1 para calcular o número de níveis de categoria na hierarquia de alterações.
-
=SubField(Categories, ';' ,SubStringCount(Categories,';')+1) para extrair a categoria mais à direita na hierarquia de alterações.
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 |
Nesse exemplo, a função SubStringCount está aninhada dentro da função SubField. A primeira dimensão calculada, SubStringCount(), calcula o número de valores aninhados no campo Categories. Isso é determinado pela contagem do número de pontos e vírgulas ';' e pela adição de 1 ao resultado. Essa saída é então injetada como o terceiro parâmetro da função SubField para extrair a categoria mais à direita aninhada no campo Categories.
Por exemplo, analise os resultados da entrada ChangeID CHG00100. Na primeira dimensão calculada, SubStringCount é 2. A expressão então adiciona 1 a esse resultado para determinar que o campo Categories tem três valores de categoria aninhados, Software, Program e Patch. A função SubField, na segunda dimensão calculada, usa esse resultado para extrair a terceira categoria, Patch.