所以我的命令是这样的:
replace tradeflowcodepart = tradeflowcodepart[_n-1] + 1 if tradeflowcodepart = tradeflowcodepart[_n-1] & partnername = partnername[_n-1]
它一直给我invalid syntax
错误。
tradeflowcodepart
是一个二进制变量,if
之后的另一个是字符串。
我最终的目标是让每个观察都是独一无二的,这样我就能merge
用另一张桌子(我计划进行类似的练习,使每个观察都独一无二)。因此,如果之前的tradeflowcodepart
和partnername
与当前观察中的相同,那么我想在tradeflowcodepart
中添加一个数字,以使观察成为唯一。
答案 0 :(得分:0)
在if
运算符之后的Stata中,总是出现一个逻辑表达式,evaluates
为TRUE或FALSE。如果为TRUE,则执行if
之前的部分(命令本身),否则中止。鉴于它是一个逻辑表达式,Stata使用==
符号,而不是=
正确指定,您的命令将是:
replace tradeflowcodepart = tradeflowcodepart[_n-1] + 1 if tradeflowcodepart == tradeflowcodepart[_n-1] & partnername == partnername[_n-1]