SubStringCount - skript- och diagramfunktion
SubstringCount() returnerar antalet förekomster av angiven delsträng i indatasträngtexten. Om det inte blir någon träff returneras 0.
Syntax:
SubStringCount(text, sub_string)
Returnerad datatyp: heltal
Argument | Beskrivning |
---|---|
text | Den ursprungliga strängen. |
sub_string | En sträng som kan förekomma en eller flera gånger inom indatasträngen text. |
Exempel | Resultat |
---|---|
SubStringCount( 'abcdefgcdxyz', 'cd' ) | Returnerar 2 |
SubStringCount( 'abcdefgcdxyz', 'dc' ) | Returnerar 0 |
Exempel – grunderna SubStringCount
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
-
En datauppsättning som läses in i en datatabell som heter Example.
-
Ett fält i datatabellen heter FruitSentence.
Laddningsskript
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!"
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:
-
FruitSentence
Skapa följande beräknade dimension:
-
=SubStringCount(FruitSentence, 'apple') för att beräkna hur många gånger ordet apple förekommer i 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 |
Tabellen är sorterad på dimensionen FruitSentence i stigande ordning. Funktionen SubStringCount returnerar antalet gånger som ordet apple förekommer i varje mening. I den första meningen returneras t.ex. 2, eftersom ordet förekommer två gånger i meningen. I den andra och fjärde meningen ignorerar funktionen ordet Apple eftersom det inte matchar skiftläget för söktermen apple.
Följande kod visar hur du använder funktionen i ett laddningsskript. Detta exempel innehåller en föregående laddning som använder funktionen SubStringCount med funktionen Upper för att konvertera hela strängen till versaler, och sedan söker efter ordet 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 |
Exempel – SubStringCount-scenario
Översikt
En datauppsättning med fruktprodukter innehåller ett fält med produktbeskrivningar. Det här exemplet beräknar antalet gånger som följande fruktnamn förekommer i varje beskrivning: äpple, banan eller apelsin.
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
-
En datauppsättning som läses in i en datatabell som heter Example.
-
Ett fält i datatabellen heter ProductDescription.
Laddningsskript
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."
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:
-
ProductDescription
Skapa följande beräknade dimensioner:
-
=SubStringCount(ProductDescription, 'apple') för att beräkna antalet förekomster av ordet apple i strängen ProductDescription.
-
=SubStringCount(ProductDescription, 'banana') för att beräkna antalet förekomster av ordet banana i strängen ProductDescription.
-
=SubStringCount(ProductDescription, 'orange') för att beräkna antalet förekomster av ordet orange i strängen 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 |
Utdata från funktionen SubStringCount returnerar framgångsrikt antalet gånger som varje delsträng (apple, banana, orange) förekommer i produktbeskrivningen. I den första beskrivningen till exempel, returnerar funktionen 2 eftersom det finns två förekomster av ordet orange. Argumentet sub_string är skiftlägeskänsligt, så i den andra beskrivningen räknar funktionen inte ordet Banana eftersom det inte matchar delsträngen banana i mätuttrycket.
Exempel – SubStringCount-scenario parsning av nästlade data
Översikt
En datauppsättning med it-poster innehåller en lista med id-nummer och kategorier för ändringar. I datatabellen härleds fältet Categories från en hierarki på flera nivåer som listar den översta överordnade kategorin följt av alla underkategorier, till exempel Software > Program > Patch. Det här scenariot visar hur man plockar ut det sista värdet, eller bladvärdet, från den här ojämna kategorihierarkin med hjälp av en kombination av funktionerna SubStringCount och SubField.
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
-
En datauppsättning som läses in i en datatabell som heter Example.
-
Följande fält i datatabellen:
-
ChangeID innehåller det ursprungliga ändrings-ID som ska behandlas.
-
Categories innehåller en lista över ändringskategorier. Kategorierna skiljs åt med semikolon och listas i hierarkisk ordning från vänster till höger, från den översta överordnade kategorin till den mest detaljerade underkategorin.
-
Laddningsskript
Example:
Load * inline [
ChangeID,Categories
CHG00100,Software;Program;Patch
CHG00101,Hardware;Server
CHG00102,Hardware;Network;Router
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
-
ChangeID
-
Categories
Skapa följande beräknade dimensioner:
-
=SubStringCount(Categories,';')+1 för att beräkna antalet kategorinivåer i förändringshierarkin.
-
=SubField(Categories, ';' ,SubStringCount(Categories,';')+1) för att extrahera kategorin längst till höger i förändringshierarkin.
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 |
I det här exemplet nästlas SubStringCount-funktionen inuti SubField-funktionen. Den första beräknade dimensionen, SubStringCount(), beräknar antalet nästlade värden i fältet Categories. Detta bestäms genom att räkna antalet semikolon ';' och lägga till 1 till resultatet. Denna utdata infogas sedan som den tredje parametern i funktionen SubField för att extrahera kategorin längst till höger i Categories-fältet.
Granska till exempel resultaten för ChangeID-posten CHG00100. I den första beräknade dimensionen är SubStringCount 2. Uttrycket lägger sedan till 1 till det resultatet för att fastställa att fältet Categories har tre nästlade kategorivärden, Software, Program och Patch. Funktionen SubField i den andra beräknade dimensionen, använder sedan detta resultat för att extrahera den tredje kategorin, Patch.