SubStringCount - kod ve grafik fonksiyonu
SubStringCount(), girdi dizesi metninde belirtilen alt dizenin oluşum sayısını döndürür. Eşleşme yoksa, 0 sonucu döndürülür.
Söz Dizimi:
SubStringCount(text, sub_string)
Dönüş verileri türü: tamsayı
Bağımsız Değişken | Açıklama |
---|---|
text | Orijinal dize. |
sub_string | text giriş dizesi içinde bir kez veya daha çok geçebilen bir dize. |
Örnek | Sonuç |
---|---|
SubStringCount( 'abcdefgcdxyz', 'cd' ) | 2 döndürür |
SubStringCount( 'abcdefgcdxyz', 'dc' ) | 0 döndürür |
Örnek - SubStringCount temel bilgileri
Genel bakış
Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.
Yükleme kodu şunları içerir:
-
Example adlı veri tablosuna yüklenen bir veri kümesi.
-
Veri tablosunda FruitSentence adında bir alan.
Komut dosyası
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!"
];
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanı boyut olarak ekleyin:
-
FruitSentence
Aşağıdaki hesaplanan boyutu oluşturun:
-
=SubStringCount(FruitSentence, 'apple'), apple kelimesinin FruitSentence içinde kaç kez geçtiğini hesaplamak için.
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 |
Tablo, FruitSentence boyutunda artan sırada sıralanır. SubStringCount fonksiyonu, apple sözcüğünün her cümlede kaç kez geçtiğini döndürür. Örneğin, sözcük cümlede iki kez geçtiği içinden ilk cümle 2 döndürür. İkinci ve dördüncü cümlelerde fonksiyon, apple arama teriminin büyük/küçük harfiyle eşleşmediğinden Apple sözcüğünü yok sayar.
Aşağıdaki kod, fonksiyonun bir komut dosyasında nasıl kullanılacağını gösterir. Bu örnek, tüm dizeyi büyük harf karakterlerine dönüştürmek için Upper fonksiyonuyla birlikte SubStringCount fonksiyonunu kullanan ve ardından APPLE sözcüğünü arayan bir önceki yüklemeyi içerir.
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 |
Örnek - SubStringCount senaryosu
Genel bakış
Meyve ürünlerinden oluşan bir veri kümesi, ürün açıklamalarını içeren bir alan içerir. Bu örnek, her bir açıklamada şu meyve adlarının kaç kez geçtiğini hesaplar: elma, muz veya portakal.
Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.
Yükleme kodu şunları içerir:
-
Example adlı veri tablosuna yüklenen bir veri kümesi.
-
Veri tablosunda ProductDescription adında bir alan.
Komut dosyası
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."
];
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanı boyut olarak ekleyin:
-
ProductDescription
Aşağıdaki hesaplanan boyutları oluşturun:
-
=SubStringCount(ProductDescription, 'apple'), apple sözcüğünün ProductDescription dizesinde geçme sayısını hesaplamak için.
-
=SubStringCount(ProductDescription, 'banana'), banana sözcüğünün ProductDescription dizesinde geçme sayısını hesaplamak için.
-
=SubStringCount(ProductDescription, 'orange'), orange sözcüğünün ProductDescription dizesinde geçme sayısını hesaplamak için.
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 fonksiyonunun çıktısı, her bir alt dizenin (apple, banana, orange) ürün açıklamasında geçtiği örnek sayısını başarıyla döndürür. Örneğin, ilk açıklamada, orange sözcüğünün iki örneği olduğu için fonksiyon 2 döndürür. sub_string bağımsız değişkeni büyük/küçük harfe duyarlıdır, bu nedenle ikinci açıklamada, hesaplama ifadesindeki banana alt dizesiyle eşleşmediği için fonksiyon, Banana sözcüğünü saymaz.
Örnek - İç içe geçmiş verileri ayrıştıran SubStringCount senaryosu
Genel bakış
BT kayıtlarından oluşan bir veri kümesi, değişiklik kimlik numaralarının ve kategorilerinin bir listesini içerir. Veri tablosunda Categories alanı, en üst ana kategoriyi ve ardından tüm alt kategorileri listeleyen çok seviyeli bir hiyerarşiden türetilmiştir, örneğin Yazılım > Program > Düzeltme. Bu senaryo, SubStringCount ve SubField fonksiyonlarının bir kombinasyonunu kullanarak bu düzensiz kategori hiyerarşisinden son değerin veya yaprak değerinin nasıl seçileceğini göstermektedir.
Veri yükleme düzenleyicisini açın ve aşağıdaki yükleme kodunu yeni bir sekmeye ekleyin.
Yükleme kodu şunları içerir:
-
Example adlı veri tablosuna yüklenen bir veri kümesi.
-
Veri tablosundaki şu alanlar:
-
ChangeID, işlenecek orijinal değişiklik kimliğini içerir.
-
Categories, değişiklik kategorilerinin bir listesini içerir. Kategoriler noktalı virgüllerle ayrılır ve en üstteki ana kategoriden başlayarak en ayrıntılı alt kategoriye kadar soldan sağa hiyerarşik sırayla listelenir.
-
Komut dosyası
Example:
Load * inline [
ChangeID,Categories
CHG00100,Software;Program;Patch
CHG00101,Hardware;Server
CHG00102,Hardware;Network;Router
];
Sonuçlar
Verileri yükleyin ve bir sayfa açın. Yeni bir tablo oluşturun ve şu alanları boyut olarak ekleyin:
-
ChangeID
-
Categories
Aşağıdaki hesaplanan boyutları oluşturun:
-
=SubStringCount(Categories,';')+1, değişiklik hiyerarşisindeki kategori seviyelerinin sayısını hesaplamak için.
-
=SubField(Categories, ';' ,SubStringCount(Categories,';')+1), değişiklik hiyerarşisinde en sağdaki kategoriyi çıkarmak için.
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 |
Bu örnekte, SubStringCount fonksiyonu, SubField fonksiyonunun içine yerleştirilmiştir. Hesaplanan ilk boyut olan SubStringCount(), Categories alanındaki iç içe geçmiş değerlerin sayısını hesaplar. Bu, ';' noktalı virgüller sayılarak ve sonuca 1 eklenerek belirlenir. Bu çıktı daha sonra SubField fonksiyonunun üçüncü parametresi olarak enjekte edilerek Categories alanında iç içe geçmiş en sağdaki kategori çıkarılır.
Örneğin, ChangeID girişi için sonuçları inceleyin CHG00100. İlk hesaplanan boyutta SubStringCount 2'dir. İfade daha sonra Categories alanının Software, Program ve Patch olmak üzere üç iç içe kategori değerine sahip olduğunu belirlemek için bu sonuca 1 ekler. Hesaplanan ikinci boyuttaki SubField fonksiyonu daha sonra bu sonucu olan Patch üçüncü kategoriyi çıkarmak için kullanır.