楼主: wat1231994
23063 50

[数据管理求助] hs6分位码转换为bec编码 [推广有奖]

11
蓝色 发表于 2018-8-23 08:37:09
用 merge m:m  匹配会有问题的
是不能用 m:m  这种方式匹配的
还是先搞清楚 m:m  是怎么去匹配的吧,否则对应的是错误的

12
嘿嘿嘿咻咻 发表于 2018-8-23 09:31:22
wat1231994 发表于 2018-8-22 20:32
1、数值转换为字符:tostring HS96,replace
2、截取字符串的前6位数字:gen HS96=substr(hs_id,1,6)
3、 ...
谢谢楼主!!你是数据统一用HS96转的嘛?我看论文上说2000-2001用HS96的转换表,2002-2006用HS02的转换表

13
wat1231994 发表于 2018-8-23 09:45:47
蓝色 发表于 2018-8-23 08:37
用 merge m:m  匹配会有问题的
是不能用 m:m  这种方式匹配的
还是先搞清楚 m:m  是怎么去匹配的吧,否则 ...
这种方法是我在其它帖子看到   然后实际操作后   结果也是合理的   所以最后采用的    您这边说用 merge m:m  匹配会有问题的   大概是什么问题呢   大家探讨一下

14
wat1231994 发表于 2018-8-23 09:46:39
嘿嘿嘿咻咻 发表于 2018-8-23 09:31
谢谢楼主!!你是数据统一用HS96转的嘛?我看论文上说2000-2001用HS96的转换表,2002-2006用HS02的转换表 ...
2000-2001用HS96的转换表  2002-2006用HS02的转换表

15
蓝色 发表于 2018-8-23 11:04:04
wat1231994 发表于 2018-8-23 09:45
这种方法是我在其它帖子看到   然后实际操作后   结果也是合理的   所以最后采用的    您这边说用 merge  ...
一个最简单的例子
你看看合并成什么样子了
  1. clear
  2. input ///
  3. id   x1  
  4. 1    1  
  5. 1    2  
  6. 1    3  
  7. 1    4  
  8. end
  9. tempfile a
  10. save "`a'"


  11. clear
  12. input ///
  13. id  x2
  14. 1    5  
  15. 1    6  
  16. end


  17. merge m:m id using "`a'"
  18. list
复制代码




. merge m:m id using "`a'"


    Result                           # of obs.
    -----------------------------------------
    not matched                             0
    matched                                 4  (_merge==3)
    -----------------------------------------


. list


     +----------------------------+
     | id   x2   x1        _merge |
     |----------------------------|
  1. |  1    5    1   matched (3) |
  2. |  1    6    2   matched (3) |
  3. |  1    6    3   matched (3) |
  4. |  1    6    4   matched (3) |
     +----------------------------+



16
wat1231994 发表于 2018-8-23 12:06:46
这是我运行的结果   我觉得结果如何  取决于id跟x1之间的关系  

17
wat1231994 发表于 2018-8-23 12:07:47
蓝色 发表于 2018-8-23 11:04
一个最简单的例子
你看看合并成什么样子了
回复在下面

18
蓝色 发表于 2018-8-23 13:23:40
你那个很明显是1:1

19
wat1231994 发表于 2018-8-23 15:22:54
蓝色 发表于 2018-8-23 13:23
你那个很明显是1:1
试了一下  merge 1:1 也是得出一样的结果   但是既然结果都一样   为什么说就是1:1   因为我也是初学者 并没有很了解

20
嘿嘿嘿咻咻 发表于 2018-8-24 19:02:11
wat1231994 发表于 2018-8-23 15:22
试了一下  merge 1:1 也是得出一样的结果   但是既然结果都一样   为什么说就是1:1   因为我也是初学者 并 ...
如果有你那个变量中有重复项,就要用m,没有就用1。

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-12 00:47