Date: Sun, 9 Nov 2008 14:27:15 -0500
Reply-To: Arthur Tabachneck <art297@NETSCAPE.NET>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Arthur Tabachneck <art297@NETSCAPE.NET>
Subject: Re: Programming help
Kasa,
You could accomplish what you want with something like:
data want;
set have;
by id;
if first.id
or divideby ge input(compress(var,,'kd'),2.)
then divideby=1;
else divideby+1;
run;
HTH,
Art
---------
On Sun, 9 Nov 2008 11:07:59 -0800, kasa <venkatrkasa@GMAIL.COM> wrote:
>data have
>id time var
>1 1 d4
>1 2 d4
>1 3 d4
>1 4 d4
>1 5 d4
>1 6 d4
>1 7 d4
>1 8 d4
>1 9 d4
>1 10 d4
>1 11 d4
>1 12 d4
>2 1 d6
>2 2 d6
>2 3 d6
>2 4 d6
>2 5 d6
>2 6 d6
>2 7 d6
>2 8 d6
>2 9 d6
>2 10 d6
>2 11 d6
>2 12 d6
>3 1 d4
>3 2 d4
>3 3 d4
>3 4 d4
>3 5 d4
>3 6 d4
>3 7 d4
>3 8 d4
>3 9 d4
>3 10 d4
>3 11 d4
>3 12 d4
>4 1 d6
>4 2 d6
>4 3 d6
>4 4 d6
>4 5 d6
>4 6 d6
>4 7 d6
>4 8 d6
>4 9 d6
>4 10 d6
>4 11 d6
>4 12 d6
>
>In the above data each each id has timeline of 12 hours if var eq 'd4'
>then I need to
>have a variable that numbers the observations from 1 to 4 in
>continuous sequence else
>if the var eq 'd6' then I have to number the subjects from 1 to 6.
>Thanks in advance for the help.
>
>data wanted
>id time var divideby
>1 1 d4 1
>1 2 d4 2
>1 3 d4 3
>1 4 d4 4
>1 5 d4 1
>1 6 d4 2
>1 7 d4 3
>1 8 d4 4
>1 9 d4 1
>1 10 d4 2
>1 11 d4 3
>1 12 d4 4
>2 1 d6 1
>2 2 d6 2
>2 3 d6 3
>2 4 d6 4
>2 5 d6 5
>2 6 d6 6
>2 7 d6 1
>2 8 d6 2
>2 9 d6 3
>2 10 d6 4
>2 11 d6 5
>2 12 d6 6
>3 1 d4 1
>3 2 d4 2
>3 3 d4 3
>3 4 d4 4
>3 5 d4 1
>3 6 d4 2
>3 7 d4 3
>3 8 d4 4
>3 9 d4 1
>3 10 d4 2
>3 11 d4 3
>3 12 d4 4
>4 1 d6 1
>4 2 d6 2
>4 3 d6 3
>4 4 d6 4
>4 5 d6 5
>4 6 d6 6
>4 7 d6 1
>4 8 d6 2
>4 9 d6 3
>4 10 d6 4
>4 11 d6 5
>4 12 d6 6
|