最后兩行是做什么的?據我了解,這些行回圈遍歷串列h_nwave并計算加權分位數 if syear2digit == 'nwave',即每年計算 5 個分位數。但我不確定我的理解是否正確。這也等同于使用group()功能嗎?
h_nwave "91 92 93 94 95 96 97 98 99 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15"
generate quantile_ip = .
forvalues number = 1(1)15 {
local nwave : word `number' of `h_nwave'
xtile quantile_ip_`nwave' = a_ip if syear2digit == `nwave' [ w = weight ], nq(5)
replace quantile_ip = quantile_ip_`nwave' if syear2digit == `nwave'
}
我嘗試用forloop, mutate, xtile(需要 statar 包)和case_when. 但是,到目前為止,我找不到合適的方法來獲得類似的結果。
uj5u.com熱心網友回復:
此代碼沒有來源或背景關系。
詳細資訊:第一個命令被截斷,大概應該是
local h_nwave 91 92 93 94 95 96 97 98 99 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
細節:第一個串列包含 25 個值,大概對應于 1991 年到 2015 年。但是第二個串列包含 15 個值,所以我們只看 91 到 05。
主要思想:xtile在變數上分箱到五分之一箱a_ip,帶有權重。因此,最低 20% 的觀測值(考慮到權重)應該在 bin 1 中,依此類推。在實踐中,必須將具有相同值的觀察值分配給同一個 bin,因此不能保證 20-20-20-20-20 拆分,除了樣本大小是否為 5 的倍數的小字。所以,結果是分配給箱 1 到 5,而不是五分位數本身或任何其他型別的分位數。
這對每個調查波單獨進行。
該xtile命令在https://www.stata.com/manuals/dpctile.pdf為每個人記錄,無論個人或作業場所對 Stata 的訪問如何。
在 R 中,您很可能能夠同時為所有調查年份生成五分位數箱。我不知道該怎么做。
否則,回圈會出現,因為xtile在一個命令呼叫中對單獨的子集不起作用。有社區貢獻的 Stata 命令允許這樣做。這種話題在Statalist上討論得很多。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/408647.html
標籤:
上一篇:管道符號|FOR/F回圈中的意外
