[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

From |
"Hans J. Baumgartner" <hbaumgartner@diw.de> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: RE: gen a newvar |

Date |
Tue, 15 Mar 2005 09:49:35 +0100 |

Thank you Nick and Ronán for your suggestions.

However, your suggestions do not work since the second largest value is not stored in the in the second last row. So _N-1 does not work.

The variable x is strictly increasing in irregular steps. If the difference between the largest and the second largest value of x is <=7, newvar shall take on the value of the second largest value of x, otherwise it shall take on the largest value of x.

In the following example newvar takes on the largest value of x for id==1 and the secon largest value of x for id==2, since the difference between the largest and the second largest is <=7:

id x newvar

1 5 21

1 5 21

1 10 21

1 10 21

1 21 21

1 21 21

1 21 21

2 6 70

2 6 70

2 70 70

2 70 70

2 75 70

2 75 70

Any further suggestions?

Hans

Nick Cox schrieb:

I am not sure that I understand the reference to _N here.

With a few guesses it sounds as if you want something like this

bysort id (x) : gen newvar = cond(x[_N] - x[_N-1] <= 7, x[_N-1], x[_N])

This will not work with missing values, so you might want something more like

gen byte present = !mi(x) bysort present id (x) : gen newvar = <same stuff> if present bysort id (newvar) : replace newvar = newvar[1] if mi(x)

Nick n.j.cox@durham.ac.uk

Hans J. Baumgartner

My data looks like this:

id x

1 5

1 5

1 10

1 10

1 21

1 21

1 21

2 ...

I want to generate a newvar with the maximum value of x , which is _N. But if the difference between the largest and the second largest value is <=7, newvar should take the value of the second largest value of x.

*

* For searches and help try:

* http://www.stata.com/support/faqs/res/findit.html

* http://www.stata.com/support/statalist/faq

* http://www.ats.ucla.edu/stat/stata/

-- Hans J. Baumgartner DIW Berlin German Institute for Economic Research Dept. Public Economics Königin-Luise-Str. 5; 14195 Berlin; Germany Tel.: +49/30/89789-307 Fax.: +49/30/89789-114 http://www.diw.de http://www.hansbaumgartner.de * * For searches and help try: * http://www.stata.com/support/faqs/res/findit.html * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**References**:**st: RE: gen a newvar***From:*"Nick Cox" <n.j.cox@durham.ac.uk>

- Prev by Date:
**RE: st: Inserting greater than or equal to sign** - Next by Date:
**RE: st: RE: gen a newvar** - Previous by thread:
**st: RE: gen a newvar** - Next by thread:
**RE: st: RE: gen a newvar** - Index(es):

© Copyright 1996–2017 StataCorp LLC | Terms of use | Privacy | Contact us | What's new | Site index |