根据另一个变量的中值创建二元变量,按两个变量分组
Creating a binary variable based on the median of another variable, grouping by two variables
在 Stata 中,我想根据另一个变量 unemp
的中值创建一个二进制变量 median_unemp
,将中值的计算按 region
和 year
。也就是说,当特定观察的失业率大于该地区和观察年份的失业中位数时,median_unemp
为 1(否则为 0)。
考虑到整个数据集,下面的代码生成我的变量,但我希望中位数按子组计算(按 region
和 year
):
webuse productivity.dta, clear
summarize unemp, detail
gen median_response = r(p50)
gen median_unemp = (unemp>=median_response)
replace median_unemp =. if unemp==.
在仔细检查数据后,我想知道 unemp
对于我的数据集的观察 1(即 region
=1 和 year
=1970)是否是大于 median_unemp
的值(针对 region
=1 和 year
=1970 计算)等等。如果大于中位数,则median_unemp
==1。如果低于中位数,则median_unemp
==0.
webuse productivity.dta, clear
egen median_unemp = median(unemp), by(region year)
gen high_unemp = (unemp >= median_unemp) if unemp < .
在此数据集中,unemp
没有缺失值,但分离缺失值是一种很好的做法。每个中位数是 9 个值中的第 5 个值,因此抛开并列,4 个值将小于中位数,5 个大于或等于中位数。
在 Stata 中,我想根据另一个变量 unemp
的中值创建一个二进制变量 median_unemp
,将中值的计算按 region
和 year
。也就是说,当特定观察的失业率大于该地区和观察年份的失业中位数时,median_unemp
为 1(否则为 0)。
考虑到整个数据集,下面的代码生成我的变量,但我希望中位数按子组计算(按 region
和 year
):
webuse productivity.dta, clear
summarize unemp, detail
gen median_response = r(p50)
gen median_unemp = (unemp>=median_response)
replace median_unemp =. if unemp==.
在仔细检查数据后,我想知道 unemp
对于我的数据集的观察 1(即 region
=1 和 year
=1970)是否是大于 median_unemp
的值(针对 region
=1 和 year
=1970 计算)等等。如果大于中位数,则median_unemp
==1。如果低于中位数,则median_unemp
==0.
webuse productivity.dta, clear
egen median_unemp = median(unemp), by(region year)
gen high_unemp = (unemp >= median_unemp) if unemp < .
在此数据集中,unemp
没有缺失值,但分离缺失值是一种很好的做法。每个中位数是 9 个值中的第 5 个值,因此抛开并列,4 个值将小于中位数,5 个大于或等于中位数。