Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


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

st: count with forval and 2 conditions


From   LY Pierrem <[email protected]>
To   [email protected]
Subject   st: count with forval and 2 conditions
Date   Fri, 6 Aug 2010 07:11:36 +0000 (GMT)

Dear Statalist,

I have data on funding applicants from different regions that look like this

id		timeposted		timefunded	comp	region
1	Feb 08, 2009 23:00:09	Feb 09, 2009 13:23:17	0	NAmerica
2	Feb 08, 2009 23:30:06	Feb 09, 2009 20:50:41	1	Asia
3	Feb 08, 2009 23:30:06	Feb 09, 2009 03:14:32	2	Asia
4	Feb 09, 2009 00:00:08	Feb 09, 2009 01:12:19	3	Asia
5	Feb 09, 2009 00:10:05	Feb 09, 2009 02:48:30	4	Asia
6	Feb 09, 2009 00:10:05	Feb 09, 2009 03:54:15	5	Asia
7	Feb 09, 2009 01:10:05	Feb 09, 2009 15:26:52	6	Asia
8	Feb 09, 2009 01:10:05	Feb 11, 2009 18:35:09	7	Asia
9	Feb 09, 2009 01:10:05	Feb 09, 2009 02:34:56	8	Africa
10	Feb 09, 2009 01:10:05	Feb 09, 2009 05:49:01	9	Asia
11	Feb 09, 2009 01:10:05	Feb 11, 2009 00:54:40	10	Asia
12	Feb 09, 2009 01:20:06	Feb 09, 2009 03:56:48	10	Africa
13	Feb 09, 2009 02:40:13	Feb 09, 2009 06:45:58	10	Africa
14	Feb 09, 2009 02:40:14	Feb 09, 2009 03:55:28	11	Africa
15	Feb 09, 2009 02:40:14	Feb 09, 2009 04:36:02	12	Africa
16	Feb 09, 2009 02:50:05	Feb 09, 2009 12:05:11	12	EastEurope
17	Feb 09, 2009 02:50:05	Feb 09, 2009 12:32:17	13	EastEurope
18	Feb 09, 2009 02:50:05	Feb 09, 2009 04:12:15	14	Africa
19	Feb 09, 2009 03:00:06	Feb 09, 2009 05:04:55	15	Africa
20	Feb 09, 2009 03:00:06	Feb 09, 2009 13:15:49	16	EastEurope
21	Feb 09, 2009 03:30:09	Feb 09, 2009 05:19:47	16	Africa


Timeposted is the time when a person was posted on the database of applicants. Timefunded is when she was funded. Thanks to earlier help from you, I successfully created a new variable, here labeled "comp" which for each person n, counts the number of people such that
1. they were posted before person n 
AND 2. were funded after person n was posted.

In other words, "comp" is the number of people active (i.e. posted but not yet funded) on the database at the time each person n is posted.

Now, I am trying to add a condition, in order to count the people
who meet the first condition, timefunded<timeposted[`i'], (see below) but ALSO who are of the same region. For example, for person id #13, it should be 2, i.e. there are 2 other people from Africa who were active at the time #13 was posted (versus 10 other active people if one ignores the region condition, i.e. my "comp" variable above). 

The new count is called "comp2", using the code 

//maximum possible
sort timeposted
gen comp2=_n-1

//check second condition
//conditional on first being met
forv i =1/`=_N'{
    qui cou if timefunded<timeposted[`i'] & region != region[`i'] in 1/`i'
    replace comp2=comp2-`r(N)' in `i'
}


However, this does not do the right calculation.
(note: to get "comp", the code was exactly the same except without the region condition in the qui cou.

I would be immensely grateful for any suggestions!

Thanks,
Pierre








      


*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index