SubStringCount - fonction de script et fonction de graphique
SubStringCount() renvoie le nombre d'occurrences de la sous-chaîne spécifiée dans le texte de la chaîne d'entrée. Si aucun caractère ne correspond, la fonction renvoie 0.
SubStringCount(text, sub_string)
entier
Argument | Description |
---|---|
text | Chaîne d'origine. |
sub_string | Chaîne qui peut figurer une ou plusieurs fois dans la chaîne d'entrée text. |
Exemple | Résultat |
---|---|
SubStringCount( 'abcdefgcdxyz', 'cd' ) | Renvoie 2. |
SubStringCount( 'abcdefgcdxyz', 'dc' ) | Renvoie 0. |
Exemple - Les bases de SubStringCount
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
-
Jeu de données chargé dans une table de données appelée Example.
-
Champ dans la table de données portant le nom FruitSentence.
Script de chargement
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!"
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :
-
FruitSentence
Créez la dimension calculée suivante :
-
=SubStringCount(FruitSentence, 'apple') pour calculer le nombre de fois où le terme apple apparaît dans 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 |
Le tableau est trié sur la dimension FruitSentence dans l'ordre croissant. La fonction SubStringCount renvoie le nombre de fois où le terme apple apparaît dans chaque phrase. Par exemple, la première phrase renvoie 2, car le terme apparaît deux fois dans la phrase. Dans les deuxième et quatrième phrases, la fonction ignore le terme Apple, car il ne correspond pas à la casse du terme recherché apple.
Le code suivant montre comment utiliser la fonction dans un script de chargement. Cet exemple comprend une instruction Load antérieure qui utilise la fonction SubStringCount avec la fonction Upper pour convertir la chaîne toute entière en caractères majuscules, puis recherche le terme 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 |
Exemple - Scénario SubStringCount
Vue d'ensemble
Un jeu de données de produits fruitiers contient un champ avec des descriptions de produits. Cet exemple calcule le nombre d'occurrences des noms de fruits suivants dans chaque description : apple, banana et orange.
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
-
Jeu de données chargé dans une table de données appelée Example.
-
Champ dans la table de données portant le nom ProductDescription.
Script de chargement
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."
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :
-
ProductDescription
Créez les dimensions calculées suivantes :
-
=SubStringCount(ProductDescription, 'apple') pour calculer le nombre d'occurrences du terme apple dans la chaîne ProductDescription.
-
=SubStringCount(ProductDescription, 'banana') pour calculer le nombre d'occurrences du terme banana dans la chaîne ProductDescription.
-
=SubStringCount(ProductDescription, 'orange') pour calculer le nombre d'occurrences du terme orange dans la chaîne 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 |
La sortie de la fonction SubStringCount parvient à renvoyer le nombre d'instances de chaque sous-chaîne (apple, banana, orange) dans la description de produit. Par exemple, dans la première description, la fonction renvoie 2, car il existe deux occurrences du terme orange. L'argument sub_string est sensible à la casse. Ainsi, dans la deuxième description, la fonction ne compte pas le terme Banana, parce qu'il ne correspond pas à la sous-chaîne banana dans l'expression de mesure.
Exemple - Scénario SubStringCount analysant des données imbriquées
Vue d'ensemble
Un jeu de données d'enregistrements IT contient une liste de numéros d'ID et de catégories de modifications. Dans la table de données, le champ Categories est dérivé d'une hiérarchie à plusieurs niveaux qui répertorie la catégorie parente supérieure suivie de toutes les sous-catégories, par exemple Software > Program > Patch. Ce scénario montre comment sélectionner la dernière valeur, ou valeur de feuille/terminale, dans cette hiérarchie de catégories irrégulière en utilisant une combinaison des fonctions SubStringCount et SubField.
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
-
Jeu de données chargé dans une table de données appelée Example.
-
Champs suivants dans la table de données :
-
ChangeID contient l'ID de modification d'origine à traiter.
-
Categories contient une liste des catégories de modifications. Les catégories sont séparées par des points-virgules et répertoriées dans un ordre hiérarchique de gauche à droite, en commençant par la catégorie parente supérieure jusqu'à la sous-catégorie la plus détaillée.
-
Script de chargement
Example:
Load * inline [
ChangeID,Categories
CHG00100,Software;Program;Patch
CHG00101,Hardware;Server
CHG00102,Hardware;Network;Router
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
-
ChangeID
-
Categories
Créez les dimensions calculées suivantes :
-
=SubStringCount(Categories,';')+1 pour calculer le nombre de niveaux de catégories dans la hiérarchie des modifications.
-
=SubField(Categories, ';' ,SubStringCount(Categories,';')+1) pour extraire la catégorie la plus à droite dans la hiérarchie des modifications.
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 |
Dans cet exemple, la fonction SubStringCount est imbriquée dans la fonction SubField. La première dimension calculée, SubStringCount(), calcule le nombre de valeurs imbriquées dans le champ Categories. Cela est déterminé en comptant le nombre de points-virgules ';' et en ajoutant 1 au résultat. Cette sortie est ensuite injectée comme troisième paramètre de la fonction SubField pour extraire la catégorie la plus à droite imbriquée dans le champ Categories.
Par exemple, examinez les résultats de l'entrée ChangeID CHG00100. Dans la première dimension calculée, SubStringCount est égal à 2. L'expression ajoute ensuite 1 à ce résultat pour déterminer que le champ Categories a trois valeurs de catégorie imbriquées, Software, Program et Patch. La fonction SubField, dans la deuxième dimension calculée, utilise ensuite ce résultat pour extraire la troisième catégorie, Patch.