Date: Sun, 7 Jan 2007 00:50:34 -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: Help with formatting dataset.
Nirmal wrote to me, off-line, indicating that I had misunderstood the
question.
>Thanks for the reply, but A1,B1, B2, C1.....are various values of the
>variables...i used A1, B1, B2......so as to explain the levels of the
>variables. It can be anything. I want to create a dataset which contains
>the levels of the variables ....just as i mentioned in the earlier
>post.....for example the input dataset contains 1 market, 2 buyer, 4
>products and 2 types in their original values......in the output dataset
>shown below explains the various levels of the variables in numbers, ----
>market has 1 level, buyer has 2 levels, .....
In that case, I would use proc sql. For example:
data have;
input Market $ Buyer $ Product $ Type $;
cards;
A1 B1 C1 D1
A1 B1 C1 D2
A1 B1 C2 D1
A1 B1 C2 D2
A1 B1 C3 D1
A1 B1 C3 D2
A1 B1 C4 D1
A1 B1 C4 D2
A1 B2 C1 D1
A1 B2 C1 D2
A1 B2 C2 D1
A1 B2 C2 D2
A1 B2 C3 D1
A1 B2 C3 D2
A1 B2 C4 D1
A1 B2 C4 D2
;
run;
proc sql;
create table want as
select count(distinct Market) as Market,
count(distinct Buyer) as buyer,
count(distinct Product) as Product,
count(distinct Type) as Type
from have;
quit;
Art
--------
On Sat, 6 Jan 2007 20:01:11 -0500, SAS-L Nirmal <lazybone2k@GMAIL.COM>
wrote:
>Dear SAS-l users,
>I have a dataset which contains 4 vaiables. The sample data sets looks
>like this
>Market Buyer Product Type
>A1 B1 C1 D1
>A1 B1 C1 D2
>A1 B1 C2 D1
>A1 B1 C2 D2
>A1 B1 C3 D1
>A1 B1 C3 D2
>A1 B1 C4 D1
>A1 B1 C4 D2
>A1 B2 C1 D1
>A1 B2 C1 D2
>A1 B2 C2 D1
>A1 B2 C2 D2
>A1 B2 C3 D1
>A1 B2 C3 D2
>A1 B2 C4 D1
>A1 B2 C4 D2
>
>and i want to format this dataset into something like this.
>
>Market Buyer Product Type
>1 1 1 1
>1 1 1 2
>1 1 2 1
>1 1 2 2
>1 1 3 1
>1 1 3 2
>1 1 4 1
>1 1 4 2
>1 2 1 1
>1 2 1 2
>1 2 2 1
>1 2 2 2
>1 2 3 1
>1 2 3 2
>1 2 4 1
>1 2 4 2
>
>The problem is i cannot hard code the format values. I did quite some work
>on this(i am not lazy!!!!!)...i counted the various variables and the
>levels and used a do loop to construct the output. But its not working. I
>also tried proc format. But i want to write a program which is data
>driven. It shud read the values and construct this. I would really
>appreciate any suggestions or tips on this one. Thanks again.
>
>regards,
>Nirmal
|