String 使用Stata中的if选项替换字符串值

String 使用Stata中的if选项替换字符串值,string,if-statement,replace,stata,String,If Statement,Replace,Stata,我想不出只有当另一个(也是)字符串变量的值等于“xxx”时,如何告诉Stata替换字符串变量的值?为了说明这个问题:我需要以市政当局的名义根据匹配情况合并两个数据集(不幸的是,我没有两个数据集的共同点)。在第一个数据集中,有几家医院的市政名称为“法兰克福”。在第二个数据集中,法兰克福有两个实例:“法兰克福上午”和“法兰克福(奥登)”。他们都有一家医院。因此,我不得不采用额外的标准来区分它们。换句话说,我不能简单地告诉Stata将所有市政价值“Frankfurt”替换为例如“Frankfurt a

我想不出只有当另一个(也是)字符串变量的值等于“xxx”时,如何告诉Stata替换字符串变量的值?为了说明这个问题:我需要以市政当局的名义根据匹配情况合并两个数据集(不幸的是,我没有两个数据集的共同点)。在第一个数据集中,有几家医院的市政名称为“法兰克福”。在第二个数据集中,法兰克福有两个实例:“法兰克福上午”和“法兰克福(奥登)”。他们都有一家医院。因此,我不得不采用额外的标准来区分它们。换句话说,我不能简单地告诉Stata将所有市政价值“Frankfurt”替换为例如“Frankfurt am Main”(在这种情况下,我可以使用命令

replace ort = subinstr(ort, "Frankfurt", "Frankfurt am Main", .)   

但我必须首先根据其名称找到医院所在地,然后告诉Stata,例如,如果名称=“xxx”,则将法兰克福替换为FaM.我想这应该不是那么难的命令,但我找不到它。

你似乎已经回答了你自己的问题,所以我不清楚谜题在哪里。否则,你就不会显示你尝试过的语法,它没有达到你想要的效果

replace ort = subinstr(ort, "Frankfurt", "Frankfurt am Main", .) if designation == "XXX" 
如果
designation
是一个变量名,并且字符串
XXX
正是您要检查的内容,则该字符串将是合法的


严格地说,
if
这里使用的是一个限定符,而不是选项。

如果programname==“Stata”
替换programname=“Stata”if programname==“Stata”:非常感谢。你是对的,它是有效的。我可能在命令中有一些愚蠢的输入错误,我疲惫的眼睛以前没有看到过。