2016-08-12 491 views
0

我試圖從Stata中可能出現在所有大寫字母或全部小寫字母中的列中找到一個單詞。匹配以小寫字母和大寫字母(或小寫字母和大寫字母組合)形式出現的字符串

foreach varlist_cust in "xyz" "XYZ" "XyZ" { 


replace cus_tag = strpos(customer_name, "`varlist_cust'") if cus_tag==0 

} 

是否有更有效的方法進行此分析?也許使用正則表達式?

+0

我不知道stata,但你有沒有考慮研究如何使用正則表達式呢?以及如何使用strpos和subinstr的正則表達式。像'/ xyz/i'這樣的表達式可以工作 – arseniyandru

+0

我讀了很多關於正則表達式的知識,並且我理解如何使用它們來查找特殊字符,但我不確定是否可以在使用它們的不同情況下找到確切的單詞。我會嘗試你所建議的。 – sonu

+1

對於「列」讀取「變量」(對於「STATA」讀取「Stata」,已經更正)。 –

回答

4

由於Stata具有嵌入lower()函數,所以不需要正則表達式。見,例如

clear 
input str9 customer_name 
"Ander2Ed" 
"sonu" 
"abcXyZcba" 
"XYZ" 
"zXyZ" 
end 

gen cus_tag = strpos(lower(customer_name), "xyz") 

簡單地評價customer_name變量作爲對您正在尋找的小寫值小寫。

請參閱help lowerhelp string functions瞭解更多信息。

相關問題