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, **statalist.org** is already up and running.

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

From |
Hitesh Chandwani <hchandwani.stata@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: Data Management question |

Date |
Tue, 25 Jun 2013 13:48:06 -0500 |

Thanks so much Nick! Worked like a charm. On Tue, Jun 25, 2013 at 12:02 PM, Nick Cox <njcoxstata@gmail.com> wrote: > You said > > "I could do this the long way with repeated gen and replace commands". > > Actually that sounds a nightmare without some small tricks. Here are mine: > > egen ABCDE = concat(A B C D E) > > For consecutive 1s, the trick is only that somewhere in the string > concatenation we will find "111" or "11". > > gen X = strpos(ABCDE, "111") > 0 > gen Y = strpos(ABCDE, "11") > 0 > > Your third definition splits into two > > For one non-consecutive 1, the condition "non-consecutive" is superfluous. > > For two non-consecutive 1s, there are in total two 1s and they must > not be consecutive. The variable -Y- already codes two consecutive > 1s. > > Either way, try > > gen Z = inlist(A + B + C + D + E, 1, 2) & !Y > > Nick > njcoxstata@gmail.com > > On 25 June 2013 17:46, Hitesh Chandwani <hchandwani.stata@gmail.com> wrote: > >> I have a data management issue. I need to generate a couple of >> indicator variables from variables that already exist in the dataset. >> >> Let's call the required indicator vars X, Y, and Z with values of 1 or >> 0. Whether the value of these vars is 1 or 0 depends on the value of 5 >> other indicator variables (A, B, C, D, E). A-E are chronologically >> ordered (i.e., A indicates an event that happened before B, which >> happened before C, and so on). >> >> For each observation: >> X = 1 if at least 3 "consecutive" vars from A-E are equal to 1. >> Y = 1 if at least 2 "consecutive" vars from A-E are equal to 1. >> Z = 1 if only 1 or 2 "non-consecutive" vars from A-E are equal to 1. >> >> I could do this the long way with repeated gen and replace commands >> but I'm sure there's a better way to do it (only I don't know how). > * > * 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/ -- Hitesh S. Chandwani University of Texas at Austin * * 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/

**Follow-Ups**:**st: Drop depending of the first digits of a variable***From:*"Miguel Angel Duran Munoz" <maduran@uma.es>

**References**:**st: Data Management question***From:*Hitesh Chandwani <hchandwani.stata@gmail.com>

**Re: st: Data Management question***From:*Nick Cox <njcoxstata@gmail.com>

- Prev by Date:
**st: re: _docx() example error** - Next by Date:
**st: Drop depending of the first digits of a variable** - Previous by thread:
**Re: st: Data Management question** - Next by thread:
**st: Drop depending of the first digits of a variable** - Index(es):