我想知道如何在不使用sort
,egen
,summarize
的情况下编写用于查找stata变量中位数的代码。这是我到目前为止所得到的:
capture program drop find_median
program find_median
local n = _N
gen ord=0
forvalues i= 0/`n' {
replace ord = `i' if [`1']> [`1'][_n-1] & [`1']> [`1'][_n+1]
}
end
find_median (the variables...)
答案 0 :(得分:2)
centile
命令直接为您提供中位数。
如果您坚持重新创建方向盘,那么您可以在程序中使用sort
,但在程序结束后保留数据的排序顺序,方法是将sortpreserve
选项添加到行{{1} },见:http://www.stata.com/help.cgi?program。这应该使程序更简单,因此更容易调试。