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]

From |
Nick Cox <njcoxstata@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: Reshape question |

Date |
Sun, 8 May 2011 08:38:55 +0100 |

The answer to Mike's question is documented. FAQ . . . . . . . . . . . . . . . . . . . . . . . . Problems with reshape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox 12/03 I am having problems with the reshape command. Can you give further guidance? http://www.stata.com/support/faqs/data/reshape3.html % begn quotation Question If I have many variables all occurring in pairs for two years 1997 and 1998, so that the dataset looks like A97, A98, B97, B98, and so on, is there any easy way to reshape the data to long without typing all the stub names? Answer The variable names are collectively *97 *98, so we need a way of expanding that list of wildcard names automatically and then removing the suffix. We can work on either *97 or *98. unab is usually billed as a programmer's command, but it can be used interactively. It unabbreviates a varlist and puts the result in a local macro. . unab vars : *97 Then we zap all the occurrences of the suffix "97": . local stubs : subinstr local vars "97" "", all In other words, each occurrence of "97" is replaced by an empty string; that is, they are removed. See macro. Then we can . reshape long `stubs', options % end quotation. So in this case: . unab vars : a_* . local stubs : subinstr local vars "a_" "", all So Keith is right, you can construct the stubs as a local macro. But you certainly don't need to type them all out. Nick On Sun, May 8, 2011 at 1:00 AM, Keith Dear <keithdear4@gmail.com> wrote: > Mike, > Not that I know of. You might be able to build the list as a macro, > using a loop that exploits the structure of the 70 names. But really, > 70 isn't so very many -- why not just list them explicitly, like this: > > loc mylist gg hh ii // etc etc > loc mylist = subinstr(" `mylist'"," "," @_",.) // nb leading spaces > reshape long `mylist', i(id) j(country) string > > Keith > > On 7 May 2011 22:22, Mike Kim <kalisperos@gmail.com> wrote: >> Keith Dear, >> >> Thank you, it works! Additional question is... my data contain around 70 >> different variable names with the same pattern (so, the total variables are >> 70*5 = 3500). Is there any way I can reshape without listing all 70 variable >> names? >> >> Mike. >> >> -----Original Message----- >> From: owner-statalist@hsphsun2.harvard.edu >> [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Keith Dear >> Sent: Saturday, May 07, 2011 1:02 AM >> To: statalist@hsphsun2.harvard.edu >> Subject: Re: st: Reshape question >> >> reshape long @_gg @_hh @_ii , i(id) j(country) string >> >> >> On 7 May 2011 14:00, Mike Kim <kalisperos@gmail.com> wrote: >>> Dear listers, >>> >>> My data looks like the following and I want to reshape it from wide to >> long. >>> There are many more similar variables with the same pattern. Is there any >>> easy way to reshape? >>> >>> id a_gg b_gg c_gg d_gg e_gg a_hh b_hh c_hh d_hh e_hh a_ii b_ii c_ii d_ii >>> e_ii .. >>> 1 1 5 3 1 2 4 1 1 >>> 5 1 3 1 1 4 1 >>> 2 4 1 1 2 1 1 1 2 >>> 1 1 1 1 5 1 1 >>> 3 2 1 2 1 1 1 5 1 >>> 1 3 1 1 1 3 1 >>> .. >>> >>> The data format I want is: >>> >>> id country gg hh ii .. >>> 1 a >>> 1 b >>> 1 c >>> 1 d >>> 1 e >>> 2 a >>> 2 b >>> 2 c >>> 2 d >>> 2 e >>> 3 a >>> 3 b >>> 3 c >>> 3 d >>> 3 e >>> ...... >>> * * 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/

**References**:**st: Reshape question***From:*"Mike Kim" <kalisperos@gmail.com>

**Re: st: Reshape question***From:*Keith Dear <keithdear4@gmail.com>

**RE: st: Reshape question***From:*"Mike Kim" <kalisperos@gmail.com>

**Re: st: Reshape question***From:*Keith Dear <keithdear4@gmail.com>

- Prev by Date:
**Re: st: shifting existing values to subsequent variables in a row** - Next by Date:
**Re: st: Stumped...xtmixed and ANOVA F-stats not agreeing for balanced design** - Previous by thread:
**Re: st: Reshape question** - Next by thread:
**st: Cumulative average of categorical variables** - Index(es):