Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: data manipulation


From   "Nick Winter" <nwinter@policystudies.com>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: data manipulation
Date   Thu, 10 Oct 2002 14:40:16 -0400

> -----Original Message-----
> From: pmitra@mindspring.com [mailto:pmitra@mindspring.com] 
> Sent: Thursday, October 10, 2002 2:25 PM
> To: statalist@hsphsun2.harvard.edu
> Subject: st: data manipulation
> 
> 
> Hello list,
> I have a dataset which has customer's payment amount by month 
> by year. Month
> ranges from 01 to 12 for years 2000 & 2001 and from 01 to 09 
> for the 2002. But
> all customers don't have data for each month. The dataset 
> looks like the
> following.
> 
> customer  month  year  amount
> x1         01    2001   50.45
> x1         03    2001   60.00
> x2         04    2001   70.00
> x2         06    2001   80.00
> 
> I would like to create a data set where each customer will have 12
> observations for years 2000 & 2001 and 9 obs. for 2002, and 
> amount will be
> zero for the months they don't have any original data. I 
> tried with couple of
> different ways, but didn't work. Could anyone please help me?
> 
> Thank you.
> 
> Pinaki Mitra

Check out the -reshape- command.  The only catch is that -reshape- only
seems to allow one variable to specify the j() units (the month and year
in your case), so you will need to combine them into one variable.  One
option:

	gen str7 date = string(year) + "_" + string(month)
	drop month year
	reshape wide amount, i(customer) j(date)

--Nick Winter
*
*   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/



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