用destring以后还是红色,describe是字符串形式但是无法引用。
state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
9条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
根据您提供的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
值进行条件赋值即可。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥20 wireshark抓不到vlan
- ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
- ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来