全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
4309 3
2012-11-19
受到警告
小弟不才,在处理数据的时候碰到了根据需要生成如下要求的形式的变量name1, name2, name3,
所以想请教以下达人,万分感谢:)
附件中是Stata的do文件,由于上传的时候不支持do文件,所以我就设置成了txt文件,
问题表述可能有点啰嗦,敬请谅解!

比如我有如下形式的data,
变量名有:
type  groupid num1 num2 name
我想根据groupid, 生成新的变量name1, name2, name3,
使得对于每一个循环组变量groupid,
如果type为A, 则组内的name1就取对应的name值;
如果type为B, 则组内的name2就取对应的name值(如果num2=1的话,name2就取缺失值);
如果type为C, 则组内的name3就取对应的name值(如果num2=2的话,name2就取缺失值);

非常感谢!

clear
set obs 20

gen type="A"
replace type="A" in 2
replace type="B" in 3
replace type="C" in 4
replace type="A" in 5
replace type="B" in 6
replace type="C" in 7
replace type="A" in 8
replace type="B" in 9
replace type="A" in 10
replace type="B" in 11
replace type="A" in 12
replace type="B" in 13
replace type="C" in 14
replace type="A" in 15
replace type="A" in 16
replace type="B" in 17
replace type="C" in 18
replace type="A" in 19
replace type="B" in 20


gen groupid=1
replace groupid=2 in 2/4
replace groupid=3 in 5/7
replace groupid=4 in 8/9
replace groupid=5 in 10/11
replace groupid=6 in 12/14
replace groupid=7 in 15
replace groupid=8 in 16/18
replace groupid=9 in 19/20

by groupid, sort: gen num1 = _n
by groupid, sort: gen num2 = _N

也就是说我希望得到的name1,name2,name3是如下形式的数据(结合上面的命令)。

gen name1="name.1"
replace name1="name.2" in 2/4
replace name1="name.5" in 5/7
replace name1="name.8" in 8/9
replace name1="name.10" in 10/11
replace name1="name.12" in 12/14
replace name1="name.15" in 15
replace name1="name.16" in 16/18
replace name1="name.19" in 19/20

gen name2="."
replace name2="name.3" in 2/4
replace name2="name.6" in 5/7
replace name2="name.9" in 8/9
replace name2="name.11" in 10/11
replace name2="name.13" in 12/14
replace name2="name.17" in 16/18
replace name2="name.20" in 19/20

gen name3="."
replace name3="name.4" in 2/4
replace name3="name.7" in 5/7
replace name3="name.14" in 12/14
replace name3="name.18" in 16/18

附件列表

StataCode.txt

大小:1.99 KB

 马上下载

二维码

扫码加我 拉你入群

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

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

全部回复
2012-11-27 01:34:21
name变量是什么?

另外,说的太复杂了,貌似这个问题没那么难~~
二维码

扫码加我 拉你入群

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

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

2012-11-27 09:25:46
fgleric 发表于 2012-11-27 01:34
name变量是什么?

另外,说的太复杂了,貌似这个问题没那么难~~
我想将name1, name2, name3横值过来。
二维码

扫码加我 拉你入群

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

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

2012-11-27 10:56:14
至今不明白你到底要做什么
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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