Stata:排序
- 使用
bysort
,在分组操作的情况下还要根据额外的变量进行排序时,使用bysort groupvar (rankvar):
正序排序
sysuse census, clear
*保留每个区域内人口最少的州,因此按每个区域内的人口排序:
byssort region (pop): keep if _n==1
*使用bysort不能直接按降序排序,解决办法:
gen gpop = -pop
byssort region (gpop): keep if _n==1 /*保留每个区域内人口最多的州*/
sort
与gsort
在升序排序时起到相同作用,但是sort
不能降序排序,gsort
可在变量前面加-
负号实现降序排序- 变更原有变量时,使用
ereplace
代替egen
*原来的方法:
sysuse auto2, clear
egen mpg2 = max(mpg)
drop mpg
rename mpg2 mpg
*更好的方法:
sysuse auto2, clear
ereplace mpg = max(mpg)