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 at the end of May, and its replacement, statalist.org is already up and running.


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

Re: st: Looping over variables


From   Nick Cox <njcoxstata@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Looping over variables
Date   Tue, 18 Dec 2012 10:13:36 +0000

I agree with Daniel's main advice. You can simplify this (e.g.)

gen n_preg = 0
forval j = 95(6)149 {
	local J = `j' + 1
	replace n_preg = n_preg + inlist(aa`j', 1, 5) | (inlist(aa`j', 2, 3,
4, 6, 7) & inrange(aa`J', 13, .))
}

See also for specific and general advice:

[D]     functions . . . . . . . . . . . . . . .  inlist() programming function
        (help inlist())

[D]     functions . . . . . . . . . . . . . . . inrange() programming function
        (help inrange())

SJ-9-1  pr0046  . . . . . . . . . . . . . . . . . . .  Speaking Stata: Rowwise
        (help rowsort, rowranks if installed) . . . . . . . . . . .  N. J. Cox
        Q1/09   SJ 9(1):137--157
        shows how to exploit functions, egen functions, and Mata
        for working rowwise; rowsort and rowranks are introduced

SJ-6-4  dm0026  . . . . . . Stata tip 39: In a list or out? In a range or out?
        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  N. J. Cox
        Q4/06   SJ 6(4):593--595                                 (no commands)
        tip for use of inlist() and inrange()

It seems also that the names of your variables bear little relation to
their contents. Systematic use of -rename- is likely to make further
analysis much easier (and less error-prone).

Finally, for "STATA" read "Stata", and please read the Statalist FAQ
to see why.

Nick

On Tue, Dec 18, 2012 at 8:47 AM, daniel klein <klein.daniel.81@gmail.com> wrote:

> You could probably create a loop over the values 95, 101 and so on,
> and add 1 to the respective number inside the loop to get at the
> durration. But I would look at -egen-'s -anycount()- function first.
> This might be a good way of approching this.

Ingeborg Forthun

> [...]
> I want to make a variable that counts the number of pregnancies for each
> woman if outcome is 1 or 5 or if outcome is 2,3,4,6 or 7 and number of
> weeks of pregnancy was more than 12 weeks. Number of weeks of
> pregnancy is given by aa96 (corresponding to the outcome of the first
> pregnancy given by aa95), aa102 (corresponding to the outcome of the
> second pregnancy given by aa101), and so on.
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/


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