在数据子集中创建分位数虚拟变量

Creating quantile dummies within subsets of the data

我正在尝试在我的数据组中创建 quantiles 性能。

这样做时,我使用了 xtile 命令:

sysuse auto.dta
local outcomes mpg
foreach outcome in `outcomes' {
    bysort foreign : xtile `outcome'_qtile = `outcome', n(4)
}

但是,我收到以下错误:

xtile may not be combined with by
r(190);

有解决办法吗?

您可以这样做:

clear
sysuse auto.dta

egen group = group(foreign)
summarize group

local outcomes mpg
foreach outcome in `outcomes' {
    generate `outcome'_qtile = .
    forvalues i = 1 / `r(max)' {
        xtile temp_`outcome'_qtile = `outcome' if group == `i', n(4)
        replace `outcome'_qtile = temp_`outcome'_qtile if group == `i'
        drop temp_`outcome'_qtile
    }
}