用destring以后还是红色,describe是字符串形式但是无法引用。

关注引自免费微信小程序:皆我百晓生
根据您提供的Stata命令行输出,问题在于您试图将一个数值型(long)编码变量Trans与字符串类型的值进行比较并赋值给另一个字符串变量trans_new,这在Stata中会导致类型不匹配错误(r(109))。解决此问题的方法是先将编码变量转换为字符串类型,然后进行条件赋值。
以下是解决此问题的Stata命令:
// 首先确保原始变量trans是字符串类型
destring trans, replace force // 如果trans已经是字符串类型,这一步可以忽略
// 创建新的字符串变量trans_new并初始化为缺失值
gen str1 trans_new = ""
// 使用if条件语句正确地将trans_new替换为指定的字符串
replace trans_new = "transh" if trans == "A" | trans == "B"
// 继续处理其他条件
replace trans_new = "transl" if trans == "C" | trans == "D"
// 如果您需要基于编码变量Trans进行操作,先将其转为字符串类型
encode trans, generate(Trans_str)
// 然后按照新创建的字符串变量Trans_str进行操作(如果需要)
replace trans_new = "transh" if Trans_str == "1" | Trans_str == "2" // 假设"A"和"B"编码为1和2
// 最后检查数据是否已按预期更新
describe trans_new
注意:在上述代码中,我假设您已正确对trans进行了编码,且"A"、"B"对应的编码为1、2(这只是一个示例,实际情况请根据您的编码结果调整)。同时,由于trans本身已是字符串类型,所以无需使用destring命令。如果Trans是由trans编码而来,则不需要再次将其转为字符串类型,只需直接根据原始的trans值进行条件赋值即可。