全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
39836 12
2009-07-10
我知道的只有sort和gsort两个命令,但这两个命令只能实现升序或降序排列。
请问在stata中,有没有什么命令可以直接让观察值按照人为规定的顺序排列呢?
我知道一个方法可以这样,但是需要编一大段程序,挺麻烦。不知道有没有简单的命令。
谢谢啦!
二维码

扫码加我 拉你入群

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

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

全部回复
2009-7-10 09:06:45
看错了

那你就得具体说到底想怎么排序
二维码

扫码加我 拉你入群

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

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

2009-7-10 11:12:54
xlgray 发表于 2009-7-10 08:41
我知道的只有sort和gsort两个命令,但这两个命令只能实现升序或降序排列。
请问在stata中,有没有什么命令可以直接让观察值按照人为规定的顺序排列呢?
我知道一个方法可以这样,但是需要编一大段程序,挺麻烦。不知道有没有简单的命令。
谢谢啦!
2#的方法不对,可能误解了你的意思。


你能否把“挺麻烦”的程序说个大概或把问题、目标、数据结构说清楚?省得大家去揣度你的意思,更麻烦!
试试:

recode ..., gen(newvar)
sort newvar

gen newvar = 1 if inrange(oldvar, 1, 3)
replace newvar = 0 if inrange(oldvar, 3, 5.5)
...
sort newvar

再补充一个:
gen newvar = cond(inrange(oldvar, 1, 3), 1, (cond(oldvar, 3, 5.5), 2, (......) ) )   // 用cond()套嵌
sort newvar
二维码

扫码加我 拉你入群

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

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

2009-7-10 11:48:26
sort,resort
二维码

扫码加我 拉你入群

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

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

2009-7-10 12:01:39
3# voodoo


我用的方法和你的差不多,也是生成一个新的变量code,
然后,对于想放在第一位的观察值,令code=1,对于想放在第二位的观察值,令code=2,依次类推……
最后 sort code 即可。

因为对每一个观察值都要设定code的值,所以如果观察值较多的话,就要写很多行代码,所以很麻烦。
二维码

扫码加我 拉你入群

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

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

2009-7-10 12:19:29
xlgray 发表于 2009-7-10 12:01
3# voodoo


我用的方法和你的差不多,也是生成一个新的变量code,
然后,对于想放在第一位的观察值,令code=1,对于想放在第二位的观察值,令code=2,依次类推……
最后 sort code 即可。

因为对每一个观察值都要设定code的值,所以如果观察值较多的话,就要写很多行代码,所以很麻烦。
你总的说个规则或者什么的东西。
对应不同的要求是不同的。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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