Stata 字符串变量的通配符用法

Stata 字符串变量的通配符用法,stata,Stata,这个问题很直截了当。在Stata中可以对字符串使用通配符函数吗?我还没有找到合适的解决办法 以下是我尝试使用的代码: gen newvar= "output" if reg_id == "input*" 我有不同的输入值,即input12,input18,input28292,等等。通配符选择似乎不起作用 一个简单的解决方案: gen newvar = "output" if strmatch(reg_id, "input*") 有关用法,请参见帮助格式 还请注意,您可以使用regexm代替

这个问题很直截了当。在Stata中可以对字符串使用通配符函数吗?我还没有找到合适的解决办法

以下是我尝试使用的代码:

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提供了一个解释,因此更完整。相反,鼓励新一代和即将到来的新一代!