Stata 字符串变量的通配符用法
这个问题很直截了当。在Stata中可以对字符串使用通配符函数吗?我还没有找到合适的解决办法 以下是我尝试使用的代码:Stata 字符串变量的通配符用法,stata,Stata,这个问题很直截了当。在Stata中可以对字符串使用通配符函数吗?我还没有找到合适的解决办法 以下是我尝试使用的代码: gen newvar= "output" if reg_id == "input*" 我有不同的输入值,即input12,input18,input28292,等等。通配符选择似乎不起作用 一个简单的解决方案: gen newvar = "output" if strmatch(reg_id, "input*") 有关用法,请参见帮助格式 还请注意,您可以使用regexm代替
gen newvar= "output" if reg_id == "input*"
我有不同的输入值,即input12
,input18
,input28292
,等等。通配符选择似乎不起作用 一个简单的解决方案:
gen newvar = "output" if strmatch(reg_id, "input*")
有关用法,请参见帮助格式
还请注意,您可以使用
regexm
代替stratch
这不会像你想要的那样工作。就Stata而言,“*”
是您正在查找的文本字符,但找不到
这样的通配符语法适用于预期的变量列表,即它可以应用于变量名,但要将其与字符串值一起使用,需要一个专用函数
在您的示例中,所有案例都以字符串input
开头,因此这将起作用:
gen newvar = "output" if substr(reg_id, 1, 5) == "input"
Stata还支持模式匹配和正则表达式
gen newvar = "output" if strmatch(reg_id, "input*")
事实上,这是得到你所要求的最简单的方法
所有文件:
help string functions
很乐意帮忙。请随意接受您认为解决问题的任何答案。就个人而言,Nicks answer提供了一个解释,因此更完整。相反,鼓励新一代和即将到来的新一代!