replace命令给出“替换”;无效语法";错误
所以我的命令是这样的:replace命令给出“替换”;无效语法";错误,replace,syntax,unique,stata,Replace,Syntax,Unique,Stata,所以我的命令是这样的: replace tradeflowcodepart = tradeflowcodepart[_n-1] + 1 if tradeflowcodepart = tradeflowcodepart[_n-1] & partnername = partnername[_n-1] 它一直给我一个无效语法错误 tradeflowcodepart是一个二进制变量,如果是一个字符串,则后面的另一个变量是一个二进制变量 我的最终目标是使每个观察结果都是唯一的,这样我就可以将它与
replace tradeflowcodepart = tradeflowcodepart[_n-1] + 1 if tradeflowcodepart = tradeflowcodepart[_n-1] & partnername = partnername[_n-1]
它一直给我一个无效语法错误
tradeflowcodepart
是一个二进制变量,如果
是一个字符串,则后面的另一个变量是一个二进制变量
我的最终目标是使每个观察结果都是唯一的,这样我就可以将它与另一个表合并(在那里我计划做一个类似的练习,使每个观察结果都是唯一的)。因此,如果前面的tradeflowcodepart
和partnername
与当前观察中的相同,那么我想在tradeflowcodepart
中添加一个数字,以使观察结果唯一。在Stata中,if
操作符后面总是有一个逻辑表达式,其计算结果为真或假。如果为TRUE,则执行之前的部分(命令本身),否则中止。如果它是一个逻辑表达式,Stata将使用=
符号,而不是正确指定=
,您的命令将是:
replace tradeflowcodepart = tradeflowcodepart[_n-1] + 1 if tradeflowcodepart == tradeflowcodepart[_n-1] & partnername == partnername[_n-1]
当您测试是否相等时,您需要=
而不是=
。请参阅帮助运算符
。如果不断递增,变量将不会长期保持二进制。这里的“中止”一词完全错误。假设该命令是合法的,那么重点是根据if
条件是真还是假,观察结果的处理是不同的。如果条件为假,则忽略条件为假的观察结果甚至不总是这样,因为当条件为假时,如果x>1,则生成y=42。