Stata 15 help for reshape

[D] reshape -- Convert data from wide to long form and vice versa

Syntax

Overview

long +------------+ wide | i j stub | +----------------+ |------------| | i stub1 stub2 | | 1 1 4.1 | reshape |----------------| | 1 2 4.5 | <---------> | 1 4.1 4.5 | | 2 1 3.3 | | 2 3.3 3.0 | | 2 2 3.0 | +----------------+ +------------+

To go from long to wide:

j existing variable / reshape wide stub, i(i) j(j)

To go from wide to long:

reshape long stub, i(i) j(j) \ j new variable

To go back to long after using reshape wide:

reshape long

To go back to wide after using reshape long:

reshape wide

Basic syntax

Convert data from wide form to long form

reshape long stubnames, i(varlist) [options]

Convert data from long form to wide form

reshape wide stubnames, i(varlist) [options]

Convert data back to long form after using reshape wide

reshape long

Convert data back to wide form after using reshape long

reshape wide

List problem observations when reshape fails

reshape error

options Description ------------------------------------------------------------------------ * i(varlist) use varlist as the ID variables j(varname [values]) long->wide: varname, existing variable wide->long: varname, new variable optionally specify values to subset varname string varname is a string variable (default is numeric) ------------------------------------------------------------------------ * i(varlist) is required.

where values is #[-#] [...] if varname is numeric (default) "string" ["string" ...] if varname is string

and where stubnames are variable names (long->wide), or stubs of variable names (wide->long), and either way, may contain @, denoting where j appears or is to appear in the name.

In the example above, when we wrote "reshape wide stub", we could have written "reshape wide stub@" because j by default ends up as a suffix. Had we written stu@b, then the wide variables would have been named stu1b and stu2b.

Advanced syntax

reshape i varlist

reshape j varname [values] [, string]

reshape xij fvarnames [, atwl(chars)]

reshape xi [varlist]

reshape [query]

reshape clear

Menu

Data > Create or change data > Other variable-transformation commands > Convert data between wide and long

Description

reshape converts data from wide to long form and vice versa.

Options

i(varlist) specifies the variables whose unique values denote a logical observation. i() is required.

j(varname [values]) specifies the variable whose unique values denote a subobservation. values lists the unique values to be used from varname, which typically are not explicitly stated because reshape will determine them automatically from the data.

string specifies that j() may contain string values.

atwl(chars), available only with the advanced syntax and not shown in the dialog box, specifies that plain ASCII chars be substituted for the @ character when converting the data from wide to long form.

Remarks

Before using reshape, you need to determine whether the data are in long or wide form. You also must determine the logical observation (i) and the subobservation (j) by which to organize the data. Suppose that you had the following data, which could be organized in wide or long form as follows:

(wide form)

i ....... x_ij ........ id sex inc80 inc81 inc82 ------------------------------- 1 0 5000 5500 6000 2 1 2000 2200 3300 3 0 3000 2000 1000

(long form)

i j x_ij id year sex inc ----------------------- 1 80 0 5000 1 81 0 5500 1 82 0 6000 2 80 1 2000 2 81 1 2200 2 82 1 3300 3 80 0 3000 3 81 0 2000 3 82 0 1000

Given these data, you could use reshape to convert from one form to the other:

. reshape long inc, i(id) j(year) (goes from top form to bottom) . reshape wide inc, i(id) j(year) (goes from bottom form to top)

See [D] reshape for a detailed discussion and examples for both the basic and advanced syntax.

Examples

--------------------------------------------------------------------------- Setup . webuse reshape1

List the data . list

Convert data from wide form to long form . reshape long inc ue, i(id) j(year)

List the result . list, sepby(id)

Convert data back from long form to wide form (quick way) . reshape wide

Convert data back from long form to wide form (explicit way) . reshape wide inc ue, i(id) j(year)

--------------------------------------------------------------------------- Setup . webuse reshape2, clear

List the data . list

Try to convert the data from wide form to long form . reshape long inc, i(id) j(year)

List the problem observations . reshape error

--------------------------------------------------------------------------- Setup . webuse reshape3, clear

List the data . list

Convert the data from wide form to long form . reshape long inc@r ue, i(id) j(year)

List the result . list, sepby(id)

Convert the data back from long form to wide form (quick way) . reshape wide

Convert the data back from long form to wide form (explicit way) . reshape wide inc@r ue, i(id) j(year)

--------------------------------------------------------------------------- Setup . webuse reshape4, clear

List the data . list

Convert the data from wide form to long form, allowing sex to take on string values . reshape long inc, i(id) j(sex) string

List the result . list, sepby(id)

Convert the data back from long form to wide form (quick way) . reshape wide

Convert the data back from long form to wide form (explicit way) . reshape wide inc, i(id) j(sex) string

--------------------------------------------------------------------------- Setup . webuse reshape5, clear

List the data . list

Convert the data from long-long form to wide-wide form (two j variables) . reshape wide @inc, i(hid year) j(sex) string . reshape wide minc finc, i(hid) j(year)

List the result . list

Convert the data back from wide-wide form to long-long form . reshape long minc finc, i(hid) j(year) . reshape long @inc, i(hid year) j(sex) string

List the result . list ---------------------------------------------------------------------------

Video examples

How to reshape data from long format to wide format

How to reshape data from wide format to long format

Stored results

reshape stores the following characteristics with the data (see [P] char):

_dta[ReS_i] i variable names _dta[ReS_j] j variable name _dta[ReS_jv] j values, if specified _dta[ReS_Xij] X_ij variable names _dta[ReS_Xij_n] number of X_ij variables _dta[ReS_Xij_long#] name of #th X_ij variable in long form _dta[ReS_Xij_wide#] name of #th X_ij variable in wide form _dta[ReS_Xi] X_i variable names, if specified _dta[ReS_atwl] atwl() value, if specified _dta[ReS_str] 1 if option string specified, 0 otherwise


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