Friday, 31 October 2025

297.INDIAN SAREES ANALYTICS USING PROC PRINT | PROC SORT | PROC FREQ | PROC MEANS | PROC SQL | AND MACROS FOR DISCOUNT, PRODUCTION TIME, REVIEWS, PRICE, AND POPULARITY REPORTS ACROSS STATES

INDIAN SAREES ANALYTICS USING PROC PRINT | PROC SORT | PROC FREQ | PROC MEANS | PROC SQL | AND MACROS FOR DISCOUNT, PRODUCTION TIME, REVIEWS, PRICE, AND POPULARITY REPORTS ACROSS STATES

1. CREATE BASE DATASET: INDIAN SAREES INFORMATION 

options nocenter;

data work.Indian_Sarees;

 input SareeID $ SareeName:$15. State:$15. Fabric $ Color:$12. Price Popularity $;

 datalines;

S001 Banarasi UttarPradesh Silk Red 8500 High

S002 Kanjeevaram TamilNadu Silk Gold 12000 VeryHigh

S003 Chanderi MadhyaPradesh Cotton Pink 4500 Medium

S004 Paithani Maharashtra Silk Green 10000 High

S005 Sambalpuri Odisha Cotton Blue 5500 Medium

S006 Pochampally Telangana Ikat Yellow 7500 High

S007 Muga Assam Silk Beige 9500 High

S008 KotaDoria Rajasthan Cotton White 4200 Medium

S009 Kasavu Kerala Cotton Cream 6000 High

S010 Patola Gujarat Silk Multicolor 15000 VeryHigh

S011 Baluchari WestBengal Silk Maroon 9000 High

S012 Narayanpet Telangana Cotton Orange 5000 Medium

;

run;


proc print data=work.Indian_Sarees;

    title "ORIGINAL INDIAN SAREES DATASET";

run;

OUTPUT:

ORIGINAL INDIAN SAREES DATASET

ObsSareeIDSareeNameStateFabricColorPricePopularity
1S001BanarasiUttarPradeshSilkRed8500High
2S002KanjeevaramTamilNaduSilkGold12000VeryHigh
3S003ChanderiMadhyaPradeshCottonPink4500Medium
4S004PaithaniMaharashtraSilkGreen10000High
5S005SambalpuriOdishaCottonBlue5500Medium
6S006PochampallyTelanganaIkatYellow7500High
7S007MugaAssamSilkBeige9500High
8S008KotaDoriaRajasthanCottonWhite4200Medium
9S009KasavuKeralaCottonCream6000High
10S010PatolaGujaratSilkMulticolor15000VeryHigh
11S011BaluchariWestBengalSilkMaroon9000High
12S012NarayanpetTelanganaCottonOrange5000Medium

2. ADD FLAG VARIABLES (DISCOUNT, PRODUCTION TIME, REVIEWS) 

data work.Saree_Flag;

 set work.Indian_Sarees;

 array Saree_Flag[3] Saree_Discount Production_Time_Days Online_Reviews;

    do i = 1 to dim(Saree_Flag);

        Saree_Flag[i] = 0;

    end;


/*     --- Discounts Based on Fabric Type --- */

    select (upcase(strip(Fabric)));

        when ('SILK')    Saree_Discount = 15;

        when ('COTTON')  Saree_Discount = 12;

        when ('IKAT')    Saree_Discount = 18;

        otherwise Saree_Discount = 10;

    end;


/*     --- Production Time (in Days) --- */

    select (upcase(strip(Fabric)));

        when ('SILK')    Production_Time_Days = 25;

        when ('COTTON')  Production_Time_Days = 40;

        when ('IKAT')    Production_Time_Days = 60;

        otherwise Production_Time_Days = 30;

    end;


/*     --- Online Reviews (Out of 10) --- */

    select (upcase(strip(Fabric)));

        when ('SILK')    Online_Reviews = 6.2;

        when ('COTTON')  Online_Reviews = 8.5;

        when ('IKAT')    Online_Reviews = 8.2;

        otherwise Online_Reviews = 7.0;

    end;

    drop i;

run;


proc print data=work.saree_flag;

    title "INDIAN SAREES WITH DISCOUNT, PRODUCTION TIME AND REVIEWS";

run;

OUTPUT:

INDIAN SAREES WITH DISCOUNT, PRODUCTION TIME AND REVIEWS

ObsSareeIDSareeNameStateFabricColorPricePopularitySaree_DiscountProduction_Time_DaysOnline_Reviews
1S001BanarasiUttarPradeshSilkRed8500High15256.2
2S002KanjeevaramTamilNaduSilkGold12000VeryHigh15256.2
3S003ChanderiMadhyaPradeshCottonPink4500Medium12408.5
4S004PaithaniMaharashtraSilkGreen10000High15256.2
5S005SambalpuriOdishaCottonBlue5500Medium12408.5
6S006PochampallyTelanganaIkatYellow7500High18608.2
7S007MugaAssamSilkBeige9500High15256.2
8S008KotaDoriaRajasthanCottonWhite4200Medium12408.5
9S009KasavuKeralaCottonCream6000High12408.5
10S010PatolaGujaratSilkMulticolor15000VeryHigh15256.2
11S011BaluchariWestBengalSilkMaroon9000High15256.2
12S012NarayanpetTelanganaCottonOrange5000Medium12408.5

3. APPLY LABELS TO VARIABLES FOR BETTER DISPLAY 

proc print data=work.Indian_Sarees label;

 label SareeID    = "Saree ID"

       SareeName  = "Saree Name"

       State      = "Region"

       Fabric     = "Fabric Material"

       Color      = "Fabric Colour"

       Price      = "Price (INR)";

    title "LABELED VERSION OF INDIAN SAREES DATASET";

run;

OUTPUT:

LABELED VERSION OF INDIAN SAREES DATASET

ObsSaree IDSaree NameRegionFabric MaterialFabric ColourPrice (INR)Popularity
1S001BanarasiUttarPradeshSilkRed8500High
2S002KanjeevaramTamilNaduSilkGold12000VeryHigh
3S003ChanderiMadhyaPradeshCottonPink4500Medium
4S004PaithaniMaharashtraSilkGreen10000High
5S005SambalpuriOdishaCottonBlue5500Medium
6S006PochampallyTelanganaIkatYellow7500High
7S007MugaAssamSilkBeige9500High
8S008KotaDoriaRajasthanCottonWhite4200Medium
9S009KasavuKeralaCottonCream6000High
10S010PatolaGujaratSilkMulticolor15000VeryHigh
11S011BaluchariWestBengalSilkMaroon9000High
12S012NarayanpetTelanganaCottonOrange5000Medium

4. SORT DATA BY STATE AND PRICE (DESCENDING) 

proc sort data=work.Indian_Sarees out=Sarees_Sorted;

 by State descending Price;

run;

proc print data=work.Sarees_Sorted;

    title "SAREES SORTED BY STATE AND DESCENDING PRICE";

run;

OUTPUT:

SAREES SORTED BY STATE AND DESCENDING PRICE

ObsSareeIDSareeNameStateFabricColorPricePopularity
1S007MugaAssamSilkBeige9500High
2S010PatolaGujaratSilkMulticolor15000VeryHigh
3S009KasavuKeralaCottonCream6000High
4S003ChanderiMadhyaPradeshCottonPink4500Medium
5S004PaithaniMaharashtraSilkGreen10000High
6S005SambalpuriOdishaCottonBlue5500Medium
7S008KotaDoriaRajasthanCottonWhite4200Medium
8S002KanjeevaramTamilNaduSilkGold12000VeryHigh
9S006PochampallyTelanganaIkatYellow7500High
10S012NarayanpetTelanganaCottonOrange5000Medium
11S001BanarasiUttarPradeshSilkRed8500High
12S011BaluchariWestBengalSilkMaroon9000High

5. FREQUENCY DISTRIBUTION OF FABRIC AND POPULARITY 

proc freq data=work.Indian_Sarees;

 table Fabric * Popularity / nocum nopercent;

    title "FREQUENCY TABLE: FABRIC VS POPULARITY";

run;

OUTPUT:

FREQUENCY TABLE: FABRIC VS POPULARITY

The FREQ Procedure

Frequency
Row Pct
Col Pct
Table of Fabric by Popularity
FabricPopularity
HighMediumVeryHighTotal
Cotton
1
20.00
16.67
4
80.00
100.00
0
0.00
0.00
5
 
 
Ikat
1
100.00
16.67
0
0.00
0.00
0
0.00
0.00
1
 
 
Silk
4
66.67
66.67
0
0.00
0.00
2
33.33
100.00
6
 
 
Total
6
4
2
12

6. DESCRIPTIVE STATISTICS OF PRICE BY FABRIC 

proc means data=work.Indian_Sarees;

 class Fabric;

 var price;

    title "PRICE STATISTICS BY FABRIC TYPE";

run;

OUTPUT:

PRICE STATISTICS BY FABRIC TYPE

The MEANS Procedure

Analysis Variable : Price
FabricN ObsNMeanStd DevMinimumMaximum
Cotton555040.00730.06848994200.006000.00
Ikat117500.00.7500.007500.00
Silk6610666.672442.688500.0015000.00

7. SQL QUERY: SAREES PRICED ABOVE 8000 

proc sql;

 select *

  from work.Indian_Sarees

  where price > 8000

  group by Fabric

  order by SareeID;

quit;

OUTPUT:

SareeIDSareeNameStateFabricColorPricePopularity
S001BanarasiUttarPradeshSilkRed8500High
S002KanjeevaramTamilNaduSilkGold12000VeryHigh
S004PaithaniMaharashtraSilkGreen10000High
S007MugaAssamSilkBeige9500High
S010PatolaGujaratSilkMulticolor15000VeryHigh
S011BaluchariWestBengalSilkMaroon9000High


8. SQL: AVERAGE PRICE BY STATE 

proc sql;

 select state,

        avg(Price) as AvgPrice format=8.2

 from work.Indian_Sarees

 group by State;

quit;

OUTPUT:

StateAvgPrice
Assam9500.00
Gujarat15000.00
Kerala6000.00
MadhyaPradesh4500.00
Maharashtra10000.00
Odisha5500.00
Rajasthan4200.00
TamilNadu12000.00
Telangana6250.00
UttarPradesh8500.00
WestBengal9000.00


9. SQL: SAREES PRICED ABOVE OVERALL AVERAGE 

proc sql;

 select sareename, price

  from work.indian_sarees

  where price > (select avg(Price) 

                   from work.indian_sarees);

quit;

OUTPUT:

SareeNamePrice
Banarasi8500
Kanjeevaram12000
Paithani10000
Muga9500
Patola15000
Baluchari9000

10. MACRO: GENERATE STATE-WISE REPORTS 

%macro Saree_Report(State);

    title "SAREE REPORT FOR &State";


    /* Print Sarees by Selected State */

    proc print data=work.Indian_Sarees;

        where State = "&State";

        title2 "Saree Details for &State";

    run;


    /* Summary Stats for that State */

    proc means data=work.Indian_Sarees n mean std min max;

        where State = "&State";

        var price;

        title2 "Price Summary for &State";

    run;


    /* Fabric-Popularity Relationship */

    proc freq data=work.Indian_Sarees;

        where State = "&State";

        tables fabric * popularity;

        title2 "Fabric vs Popularity for &State";

    run;

%mend;


%Saree_Report(Telangana)

OUTPUT:

SAREE REPORT FOR Telangana

Saree Details for Telangana

ObsSareeIDSareeNameStateFabricColorPricePopularity
6S006PochampallyTelanganaIkatYellow7500High
12S012NarayanpetTelanganaCottonOrange5000Medium

SAREE REPORT FOR Telangana

Price Summary for Telangana

The MEANS Procedure

Analysis Variable : Price
NMeanStd DevMinimumMaximum
26250.001767.775000.007500.00

SAREE REPORT FOR Telangana

Fabric vs Popularity for Telangana

The FREQ Procedure

Frequency
Percent
Row Pct
Col Pct
Table of Fabric by Popularity
FabricPopularity
HighMediumTotal
Cotton
0
0.00
0.00
0.00
1
50.00
100.00
100.00
1
50.00
 
 
Ikat
1
50.00
100.00
100.00
0
0.00
0.00
0.00
1
50.00
 
 
Total
1
50.00
1
50.00
2
100.00

%Saree_Report(Gujarat)

OUTPUT:

SAREE REPORT FOR Gujarat

Saree Details for Gujarat

ObsSareeIDSareeNameStateFabricColorPricePopularity
10S010PatolaGujaratSilkMulticolor15000VeryHigh

SAREE REPORT FOR Gujarat

Price Summary for Gujarat

The MEANS Procedure

Analysis Variable : Price
NMeanStd DevMinimumMaximum
115000.00.15000.0015000.00

SAREE REPORT FOR Gujarat

Fabric vs Popularity for Gujarat

The FREQ Procedure

Frequency
Percent
Row Pct
Col Pct
Table of Fabric by Popularity
FabricPopularity
VeryHighTotal
Silk
1
100.00
100.00
100.00
1
100.00
 
 
Total
1
100.00
1
100.00



To Visit My Previous Organizational Data Management And Segmentation :Click Here
To Visit My Previous Proc Means And CharType Option:Click Here
To Visit My Previous SAS Functions:Click Here
To Visit My Previous Length Statement Using In Many Ways:Click Here



Follow Us On : 


 


--- FOLLOW OUR BLOG FOR MORE INFORMATION.

--->PLEASE DO COMMENTS AND SHARE OUR BLOG.