2016-08-12 256 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了解更多信息。

相关问题