楼主: clu43
5537 15

不同类型的变量合并问题 [推广有奖]

11
寒武纪 发表于 2010-2-23 22:17:42
我也遇到了相同的问题。例如:
hhid   l           ine
212102003   1
212102006   1
212102006   2
212102003   1
212102003   102
hhid的famat 是%12.0g,line 对应是%8.0g。
我用过gen id=hhid+line    也用过gen id=hhid*1000+line    答案好像都不对。请教大家。
这个好像也不对gen id=string(hhid)+string(line)

12
sungmoo 发表于 2010-2-24 08:44:01
可否把得出的答案贴一下?

13
寒武纪 发表于 2010-2-24 12:12:09
g id=hhid+line  答案为:
hhid             line           id   (格式为%9.0g)     (当我把format 改为%11.0g时id变为以下)
212102003   1         2.12e+08                             212102000
212102006   1         2.12e+08                             212102000
212102006   2         2.12e+08                             212102016
212102003   1         2.12e+08                             212102000                        
212102003   102    2.12e+08                             212102112

再g id2=hhid*1000+line  ,结果是:

hhid             line           id2  (格式为%9.0g)     (当我把format 改为%14.0g时id2变为以下)
212102003   1         2.12e+11                             212102004736
212102006   1         2.12e+11                             212102004736
212102006   2         2.12e+11                             212102014736
212102003   1         2.12e+11                             212102004736                  
212102003   102    2.12e+11                             212102004736

g id3=hhid*1000+line  ,结果是:
hhid             line           id3  (格式为%11s,且变成红色)   
212102003   1         2.12e+081                             
212102006   1         2.12e+081                             
212102006   2         2.12e+082                             
212102003   1         2.12e+081                                       
212102003   102    2.12e+08102                             

ps:我几个月前也用  g id=hhid+line    操作做过同样的将家庭id(hhid)和个人行号(line)合并成个人id的操作,没有任何问题,这次不知道怎么就不行了。而且我对照了以前的操作,全都是一样的啊。请版主指教。

14
sungmoo 发表于 2010-2-24 12:21:58
*试一下:
set type double
clear
inp hhid line
212102003   1
212102006   1
212102006   2
212102003   1
212102003   102
end
g id=hhid*1000+line
form hhid %12.0g
form line %8.0g
form id %14.0g
list hhid line id

15
ctx5518 发表于 2010-2-24 12:36:26
gen zero="00" if line<10
replace zero="0" if inrange(line, 10, 99)
egen id=concat(hid zero line)

16
寒武纪 发表于 2010-2-24 13:41:05
成功!谢谢sungmoo 版主。

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-2-26 01:53