Stata:如何对变量进行顶层编码

Stata:如何对变量进行顶层编码,stata,Stata,使用auto.dta数据,我想在top X%的中位数处对价格变量进行top编码。例如,X%可以是3%,4%,等等。我如何在Stata中做到这一点呢?在回答您的问题时,我假设您想用值sayX(以下代码中的top 90%)替换上面的所有值,比如top10% 以下是示例代码: program topcode sysuse auto, clear pctile pct = price, nq(10) dis r(r9) gen newprice=price r

使用auto.dta数据,我想在top X%的中位数处对价格变量进行top编码。例如,X%可以是3%,4%,等等。我如何在Stata中做到这一点呢?

在回答您的问题时,我假设您想用值say
X
(以下代码中的
top 90%
)替换上面的所有值,比如top
10%

以下是示例代码:

program topcode
    sysuse auto, clear
    pctile pct =  price, nq(10)
    dis r(r9) 
    gen newprice=price
    replace newprice=r(r9) if newprice>r(r9)
end 

看一下<代码> xLead 命令,因为在我看来,这是一个更直接的实现你正在寻找的(重新编码为分位数)。如果你想得到结果,而不是一个新的变量,考虑使用PC-PCED而不是PCCAD。(在本例中,新变量pct是冗余的。)