# st: reinstate data after -contract- and -reshape-

 From Michael McCulloch To Statalist Statalist Subject st: reinstate data after -contract- and -reshape- Date Sat, 28 Nov 2009 12:21:25 -0800

```Dear Statalist members,
```
With the help of Nick Cox and Martin Weiss, I've created the following data simulation for a graph to track research subject accrual. My question is how to reinstate the original dataset after the - contract- and -reshape- commands. I know it's possible to -reshape-, but not sure how to "reverse" the options. I don't think it's possible to "-uncontract'", so I'm thinking some version of -restore-??
```
My understanding of those two commands is:
```
-contract- makes a summary dataset of frequencies and percentages that will be reported in the graph, and
```	-reshape- puts them in wide form so they can be -stacked-

****
* Austin Nichols suggests:
clear all
set seed 1
set obs 1000
gen id=_n
gen month=1 + int(12*uniform())
gen year=2008 + int(2*uniform())
gen subject_type=1 + int(3*uniform())
la def lab_subjects 1 "no reply" 2 "screened" 3 "sampled", modify
la val subject_type lab_subjects
g m=(year-1960)*12+month-1
format m %tmm_CY
la var m "Calendar month"
levelsof m, loc(vs)
foreach v of loc vs {
la def m `v' "`:di `:format m' `v''", modify
}
la val m m
```
by m, sort: gen freq = _N // sort by the variable of interest and get the frequencies
```by m: gen cumfreq = _N if _n == 1	// get the cumulative frequencies
replace cumfreq = sum(cumfreq)
tabdisp m, cell(freq cumfreq)
contract m subject_type, z f(one)
reshape wide one, j(subject_type) i(m)
g screened=max(0,one1)+max(0,one2)
g sampled=max(0,one1)+max(0,one2)+max(0,one3)
```
sc sampled screened noreply m, recast(bar) xla(576/599,angle(90)) name(s)
```****

Best wishes,

Michael McCulloch
Pine Street Foundation
124 Pine Street
San Anselmo, CA 94960-2674
tel:	415-407-1357
fax: 	206-338-2391

*
*   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/
```