全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
3908 7
2007-11-28

有没有达人能解决下面的问题呀:

     比如说一个变量值为211, 如果把它变为2101;或者,变量值为21111,变为210111.用何命令呀?

  即,在一个变量的值中,添加一个0,如何用STATA 命令?

    谢谢了 BOW!!!!!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2007-11-28 10:54:00
这属于前期的数据工作,不如用excel
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-11-28 10:58:00

因为数据库庞大,如果用EXCEL 一来麻烦,二来是想找到STATA 的命令,

还请达人帮忙呀,

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-11-28 11:08:00

设该变量是v

gen v1=int(v/10)*100+v-int(v/10)*10 if v>=100 & v<1000

replace v1=0 if v1==.

gen v2=int(v/100)*1000+v-int(v/100)*100 if v>=1000 & v<10000

replace v2=0 if v2==.

gen v3=int(v/1000)*10000+v-int(v/1000)*1000 if v>=10000 & v<100000

replace v3=0 if v3==.

……

依此类推,直到v的最大可能值

gen vv=v1+v2+…

vv即所要变量:对于任意一个超百的数字,在头两位数字与其他位数字之间加“0”

(也可用循环语句)

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-11-28 11:31:00

设该变量是v,设v的最大观测值小于10^m(注意m这里是一个具体的常数,不是变量)。

程序:

gen u=0
local i=1
while `i'<=m-2{
gen w`i'=int(v/10^`i')*10^(`i'+1)+v-int(v/10^`i')*10^`i' if v>=10^(`i'+1) & v<10^(`i'+2)
replace w`i'=0 if w`i'==.
replace u=u+w`i'
local i=`i'+1
}
drop w*

(注意程序里的“m-2”不是变量,须写成具体的数字,不能写成字母形式;其他不变)

u即所求变量:头两位数字与其他位数字之间加“0”。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-11-28 13:21:00

不错

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群