草莓科研服务网——中国专业社科交流平台

 找回密码
 立即注册

快捷登录

查看: 639|回复: 6

关于stata encode命令的疑惑

[复制链接]
发表于 2023-11-1 07:44:19 | 显示全部楼层 |阅读模式
1. encode var1,gen(var2) 可以对标红的汉字变量进行转换变为蓝色,以方便后续的数据操作,但为什么以转换后的蓝色变量作为merge的依据所进行的匹配数据都是错的?反之直接以红色汉字变量进行匹配的命令“merge m:m 汉字变量名 time......”这种反而能够进行正确匹配;* A5 y6 \+ {# `
2. stata偶尔会将纯数字变量标红(具体什么原因完全找不到答案),如果用encode对标红的数字进行转换,得到的蓝色数字就不再是肉眼看到的那个值了,例如显示数字1但实际计算的过程中会按照不知道是什么的数字进行计算;
$ D1 ^' V# J3 o1 H. n3. 那么encode这个命令的意义是什么?究竟能用在何处?求大神解答!谢谢!
发表于 2023-11-3 14:37:10 | 显示全部楼层
我的理解是为文本数据赋值,可以进行其他研究
回复

使用道具 举报

发表于 2023-11-3 15:19:20 | 显示全部楼层
stata对中文字符支持不好,换英文试试呗
回复

使用道具 举报

发表于 2023-11-6 10:03:09 | 显示全部楼层
encode命令通常是将字符串变量进行转码(转为数值型),比如行业代码转码后就可以用i.Ind了,Stata中红色字体表示字符型变量,有些初始数据本身是数值型,但在stata中标红,这时候千万不能用encode命令,而是应当使用g newvar=real(var) 或者destring var,gen(newvar)
回复

使用道具 举报

发表于 2023-11-7 23:20:59 | 显示全部楼层
合并数据尽量先别用encode ,直接用字符串进行merge合并,这样可以保证匹配不出错
$ E& \) F; B; [, ~( B3 t+ Q如果你已经用encode了,建议先导出Excel格式,再导入就又变成字符串,再用字符串合并. J: j5 v  h" x7 k$ Y
希望有用
回复

使用道具 举报

 楼主| 发表于 2023-12-22 21:34:01 | 显示全部楼层
Faust32 发表于 2023-11-6 10:03
8 V) e* k7 L- ^; u  m% @6 hencode命令通常是将字符串变量进行转码(转为数值型),比如行业代码转码后就可以用i.Ind了,Stata中红色字 ...
3 }( Q: h+ r; _" T: H2 l) Y
非常感谢,这个命令确实有用,但gen real(var)会导致被莫名标为红色的纯数字文本损失小数点后若干位,并不是四舍五入,而是莫名损失掉。如果小数点够小倒无所谓了
回复

使用道具 举报

发表于 2023-12-23 23:57:58 | 显示全部楼层
encode后的字段或数据,不要在数据结构上进行再处理,例如数据的增删改查。因为encode会对原始数据进行再编码,有点儿像python背后的指针。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

回帖奖励

[详情]

  • * 每天自己主题被回复3次可获得额外5论坛币奖励。
  • * 每天回复他人主题5次可获得额外8论坛币的奖励。
  • * 奖励每天都可领取,一定要多参与论坛讨论哦。
  • * 同一主题的重复回复不计。
  • 草莓科研服务网——中国专业社科交流平台 ( 津ICP备2023000499号 )|网站地图

    GMT+8, 2024-5-19 09:46 , Processed in 0.131731 second(s), 59 queries .

    Copyright © caomeikeyan

    快速回复 返回顶部 返回列表