たとえば、Stataで変数の百分位数を取るとき。
*set directory
cd"C:\Etc\Etc Etc\"
*open data file
use "dataset.dta",clear
*get centiles
centile var1, centile(1,5(5)95,99)
結果の百分位表を記録して優れたものにする方法はありますか? 百分位値は r(c_#) に格納されます。# は、データが必要な百分位数を示します。しかし、出力ウィンドウに表示されるように、多かれ少なかれ、すべてのセンタイルで値のベクトルが必要です。
次のように、 foreach ループを使用して、センタイルをベクトルに取得しようとしました。
*Create column of centiles
foreach i in r(centiles) {
xx[1,`i']=r(c_`i')
}
成功せずに。
ありがとう
編集:
それ以来、これが機能することがわかりました:
matrix X = 0,0
forvalues i=1/21 {
matrix X = `i',round(r(c_`i'),.001)\ X
}
不便な点は次のとおりです。1) 出力に 0,0 の最初の行を含める必要があり、後で削除します。2) この場合、私は 21 センタイルを持っていますが、変更したい場合に備えて、センタイルの数を自動化すると便利です。たとえば、次のようになります。
forvalues i=1/r(n_cent) {
matrix X = `i',round(r(c_`i'),.001)\ X
}
しかし、「i=1/r(n_cent)」は無効な構文です。この 2 つの不便さをどのように克服できるかについてのアドバイスをいただければ幸いです。
ありがとう