Date: Sun, 17 Jan 2010 22:10:59 +0100
Reply-To: Daniel Fernández <fdezdan@GMAIL.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Daniel Fernández <fdezdan@GMAIL.COM>
Subject: Re: Creating a new dataset-beg/end dates
In-Reply-To: <201001171907.o0HBmVf0030920@malibu.cc.uga.edu>
Content-Type: text/plain; charset=ISO-8859-1
hi,
I think this is what you want:
data have;
informat Beg yymmdd8.;
informat End yymmdd8.;
format Beg date9.;
format End date9.;
input ID Beg End;
cards;
10007 19570301 19840718
10008 19570301 20070214
10009 19580604 19760630
10020 19570301 20081231
;
data yearlist_by_id;
set have;
do year=year(beg) to year(end);
retain id;
output;
end;
drop beg end;
run;
Daniel Fernandez.
Barcelona.
2010/1/17 SAS user <sasuser4@googlemail.com>:
> I want to create a list with IDs and for which years these IDs are
> available (based on beg and end date). In particular, I want to have a
> list of the years for which these IDs are available (1992, 1993... 2000
> etc) rather than a range (1992-2000) as I want at the end to have the
> following output
>
> id
> 10020 1991
> 10020 1992
> 10020 1993
> 10020 1994
> etc
> for each id.
>
> On Sun, 17 Jan 2010 11:44:35 -0600, Joe Matise <snoopy369@GMAIL.COM> wrote:
>
>>What are you planning on doing ultimately? Are you trying to get score or
>>something by year [ie, 'what is the score for observations that contain
> 1981
>>in their year range']? More than likely the way to answer your question
>>will be answering your ultimate purpose, and not the question you've
> asked,
>>as I don't imagine the question you've asked is the right one.
>>-
>>Joe
>>
>>On Sun, Jan 17, 2010 at 11:06 AM, SAS user <sasuser4@googlemail.com>
> wrote:
>>
>>> Thank you for the reply.
>>>
>>> What I want to do is to be able to create a list of observations for
> each
>>> year based on beg and end dates. So for example for id 10020 I want to
>>> have an indicator/variable to designate that this observation is
> included
>>> in an index in 1957, 1958....and 2008. I 'm looking for the most
> efficient
>>> way to accomplish this considering that each observation is likely to be
>>> in an index for many years and at the end I would like to have a list of
>>> observations included in the index for each year.
>>>
>>>
>>>
>>>
>>> On Sun, 17 Jan 2010 11:24:45 -0500, Arthur Tabachneck
>>> <art297@NETSCAPE.NET> wrote:
>>>
>>> >In order to answer your question the list probably needs more
> information
>>> >about what you are trying to do. If it is simply to select based on
> Beg
>>> >and End, you might already have the variables you need. E.g.:
>>> >
>>> >data have;
>>> > informat Beg yymmdd8.;
>>> > informat End yymmdd8.;
>>> > format Beg date9.;
>>> > format End date9.;
>>> > input ID Beg End;
>>> > cards;
>>> >10007 19570301 19840718
>>> >10008 19570301 20070214
>>> >10009 19580604 19760630
>>> >10020 19570301 20081231
>>> >;
>>> >
>>> >data want;
>>> > set have (where=(Beg<='01MAR1957'd<=End));
>>> >run;
>>> >
>>> >HTH,
>>> >Art
>>> >--------
>>> >On Sun, 17 Jan 2010 08:28:47 -0500, SAS user <sasuser4@GOOGLEMAIL.COM>
>>> >wrote:
>>> >
>>> >>Hello
>>> >>
>>> >>Below is a sample of my data
>>> >>
>>> >>ID Beg End
>>> >>10007 19570301 19840718
>>> >>10008 19570301 20070214
>>> >>10009 19580604 19760630
>>> >>10020 19570301 20081231
>>> >>
>>> >>The objective is to create a dataset which will allow me to identify
> the
>>> >>IDs which were included in the dataset as identified by the end
> variable.
>>> >>
>>> >>For example for ID 10020 I want to have a variable that will enable
> me to
>>> >>identify that this ID was in the dataset in 1957, 1958, 1959.... till
>>> >>12/2008.
>>> >>
>>> >>Any suggestions would be most welcome.
>>> >>
>>> >>Thanks!
>>>
>
|