Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, is already up and running.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: calculating proportions

From   Oliver Jones <>
Subject   Re: st: calculating proportions
Date   Tue, 21 Feb 2012 11:01:17 +0100

Hello Ekaterina,

here is an little example. I hope it helps you.
Go through it very carefully. Even though it might not
be exactly what you need, it might point you in the right

*************** example code begins **************************
clear all
set obs 7

gen byte id = _n

gen byte sex = 1
replace sex = 0 in 4/7
label def lbl_sex 0 "male" 1 "female"
label values sex lbl_sex

gen int income = 7
replace income = 10 in 3
replace income = 0 in 4
replace income = 7 in 5
replace income = 9 in 6
replace income = 11 in 7


* So far is the setup of my little example.
* A crucial point is that I assume you have not to many
* different reportet levels of income, lets say 200.
* Otherwise I'm not too sure if this will work for you.

* Get  female statistics:
keep if sex == 1
contract income, percent(percent) cpercent(cum_percent)
tempfile fem_stats
save `fem_stats'

* Get male income list and merge the female statistics:
keep if sex == 0
*bysort income: gen byte keepone = _n == 1
*keep if keepone == 1
merge m:1 income using `fem_stats'

sort income

* Now I think you can use carryforward on cum_percent,
* NOT on percent (as far as I understand your task!).

* carryforward is from SSC. Type -fintit carryforward-

* For your third variable just do a bit 1 minus calculations.

**************** example code ends ***************************
*   For searches and help try:

© Copyright 1996–2015 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index