SubStringCount - Skript- und Diagrammfunktion
SubStringCount() liefert die Anzahl der Vorkommen des angegebenen Teilstrings im Text des Eingabestrings. Gibt es keine Übereinstimmung, ist das Ergebnis 0.
Syntax:
SubStringCount(text, sub_string)
Rückgabe Datentyp: ganze Zahl
Argument | Beschreibung |
---|---|
text | Der Original-String. |
sub_string | Ein String, der einmal oder mehrmals innerhalb des Eingabestrings text vorkommen kann. |
Beispiel | Ergebnis |
---|---|
SubStringCount( 'abcdefgcdxyz', 'cd' ) | Gibt 2 zurück |
SubStringCount( 'abcdefgcdxyz', 'dc' ) | Gibt 0 zurück |
Beispiel – Grundlegendes zu „SubStringCount“
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
-
Datensatz, der in eine Datentabelle namens Example geladen wird
-
Ein Feld in der Datentabelle heißt FruitSentence.
Ladeskript
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!"
];
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:
-
FruitSentence
Erstellen Sie die folgende berechnete Dimension:
-
=SubStringCount(FruitSentence, 'apple'), um zu berechnen, wie oft das Wort apple in FruitSentence vorkommt.
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 |
Die Tabelle wird nach der Dimension FruitSentence in aufsteigender Reihenfolge sortiert. Die Funktion SubStringCount gibt die Anzahl der Vorkommen des Worts apple in jedem Satz zurück. Der erste Satz gibt zum Beispiel 2 zurück, weil das Wort zweimal im Satz vorkommt. Im zweiten und vierten Satz ignoriert die Funktion das Wort Apple, da es nicht mit der Groß-/Kleinschreibung des Suchbegriffs apple übereinstimmt.
Der folgende Code zeigt, wie Sie die Funktion in einem Ladeskript verwenden können. Dieses Beispiel enthält einen vorangestellten load-Befehl, der die Funktion SubStringCount mit der Funktion Upper verwendet, um den gesamten String in Großbuchstaben umzuwandeln, und dann nach dem Wort APPLE sucht.
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 |
Beispiel – Szenario für „SubStringCount“
Übersicht
Ein Datensatz mit Obstprodukten enthält ein Feld mit Produktbeschreibungen. In diesem Beispiel wird berechnet, wie oft die folgenden Obstnamen in jeder Beschreibung vorkommen: „apple“, „banana“ oder „orange“.
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
-
Datensatz, der in eine Datentabelle namens Example geladen wird
-
Ein Feld in der Datentabelle heißt ProductDescription.
Ladeskript
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."
];
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:
-
ProductDescription
Erstellen Sie die folgenden dynamischen Dimensionen:
-
=SubStringCount(ProductDescription, 'apple'), um die Anzahl der Vorkommen des Worts apple im String ProductDescription zu berechnen.
-
=SubStringCount(ProductDescription, 'banana'), um die Anzahl der Vorkommen des Worts banana im String ProductDescription zu berechnen.
-
=SubStringCount(ProductDescription, 'orange'), um die Anzahl der Vorkommen des Worts orange im String ProductDescription zu berechnen.
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 |
Die Ausgabe der Funktion SubStringCount gibt erfolgreich die Anzahl der Vorkommen jedes Teilstrings (apple, banana, orange) in der Produktbeschreibung zurück. In der ersten Beschreibung gibt die Funktion zum Beispiel 2 zurück, weil es zwei Instanzen des Worts orange gibt. Das Argument sub_string unterscheidet zwischen Groß- und Kleinschreibung, so dass die Funktion in der zweiten Beschreibung das Wort Banana nicht zählt, weil es nicht mit dem Teilstring banana im Kennzahlenausdruck übereinstimmt.
Beispiel – Szenario für „SubStringCount“ mit Parsen von verschachtelten Daten
Übersicht
Ein Datensatz von IT-Datensatzeinträgen enthält eine Liste von Änderungs-ID-Nummern und Kategorien. In der Datentabelle wird das Feld Categories von einer mehrstufigen Hierarchie abgeleitet, die die oberste übergeordnete Kategorie gefolgt von allen Unterkategorien auflistet, z. B. Software > Programm > Patch. Dieses Szenario zeigt, wie Sie den letzten Wert oder den Blattwert aus dieser unregelmäßigen Kategorienhierarchie mit Hilfe einer Kombination aus den Funktionen SubStringCount und SubField heraussuchen können.
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
-
Datensatz, der in eine Datentabelle namens Example geladen wird
-
Die folgenden Felder in der Datentabelle:
-
ChangeID enthält die ursprüngliche Änderungs-ID, die verarbeitet werden soll.
-
Categories enthält eine Liste von Änderungskategorien. Die Kategorien werden durch Semikolons getrennt und in hierarchischer Reihenfolge von links nach rechts aufgelistet, beginnend mit der obersten übergeordneten Kategorie bis hin zur detailliertesten Unterkategorie.
-
Ladeskript
Example:
Load * inline [
ChangeID,Categories
CHG00100,Software;Program;Patch
CHG00101,Hardware;Server
CHG00102,Hardware;Network;Router
];
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
-
ChangeID
-
Categories
Erstellen Sie die folgenden dynamischen Dimensionen:
-
=SubStringCount(Categories,';')+1, um die Anzahl der Kategorieebenen in der Änderungshierarchie zu berechnen.
-
=SubField(Categories, ';' ,SubStringCount(Categories,';')+1), um die Kategorie ganz rechts in der Änderungshierarchie zu extrahieren.
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 |
In diesem Fall ist die Funktion SubStringCount innerhalb der Funktion SubField verschachtelt. Die erste dynamische Dimension, SubStringCount(), berechnet die Anzahl der verschachtelten Werte im Feld Categories. Dies wird ermittelt, indem die Anzahl der Semikolons ';' gezählt und 1 zum Ergebnis addiert wird. Diese Ausgabe wird dann als dritter Parameter der Funktion SubField eingefügt, um die Kategorie ganz rechts zu extrahieren, die im Feld Categories verschachtelt ist.
Prüfen Sie zum Beispiel die Ergebnisse für den ChangeID-Eintrag CHG00100. In der ersten dynamischen Dimension ist SubStringCount gleich 2. Der Ausdruck addiert dann 1 zu diesem Ergebnis, um zu bestimmen, dass das Feld Categories drei verschachtelte Kategoriewerte enthält, Software, Program und Patch. Die Funktion SubField in der zweiten dynamischen Dimension verwendet dann dieses Ergebnis, um die dritte Kategorie (Patch) zu extrahieren.