GLOBAL DURGA TEMPLES ANALYSIS USING PROC FORMAT | PROC CONTENTS | PROC PRINT | PROC SORT | PROC FREQ | PROC MEANS | PROC SQL | PROC REPORT
/*Creating A Dataset Of Goddess Durga temples*/
1. Create dataset: durga_temples
options nocenter;
data durga_temples;
infile datalines dsd truncover;
length Temple_ID $8 Temple_Name $80 Country $40 City $40 Deity_Aspect $40
EstablishedYear 8 Annual_Visitors 8 Rating 8;
input Temple_ID $ Temple_Name :$80. Country :$40. City :$40. Deity_Aspect :$40.
EstablishedYear Annual_Visitors Rating;
format EstablishedYear 4. Annual_Visitors comma10. Rating 4.1;
datalines;
T001,"Kali Bari Durga Mandir","India","Kolkata","Kali/Durga",1690,120000,4.6
T002,"Vaishno Devi (Durga shrine)","India","Katra","Maa Vaishno Devi (Durga form)",1830,850000,4.8
T003,"Durga Temple (Malaysia)","Malaysia","Penang","Maha Durga",1905,45000,4.1
T004,"Sri Durga Temple (Singapore)","Singapore","Singapore","Bhairavi:Durgā",1925,38000,4.2
T005,"Maa Durga Temple (UK)","United Kingdom","London","Chandi-Durga",2001,15000,4.0
T006,"Durga Mandir (USA)","United States","Newark","Ashta Durgā aspects",1975,22000,4.3
T007,"Chandi Devi Temple (Haridwar)","India","Haridwar","Chandi (Durga)",1929,200000,4.7
T008,"Shree Durga Temple (Nepal)","Nepal","Kathmandu","Parvati as Durga",1800,60000,4.4
T009,"Durga Bari (Mauritius)","Mauritius","Port Louis","Durga (navaratri focus)",1890,12000,4.0
T010,"Bhadrakali Temple (Kerala)","India","Thiruvananthapuram","Bhadrakali (Durga form)",1600,90000,4.5
T011,"Shree Amba Mandir (South Africa)","South Africa","Durban","Amba-Durga",1950,18000,4.1
T012,"Durga Temple (Bangladesh)","Bangladesh","Dhaka","Durga Puja focal",1910,400000,4.6
T013,"Durga Bhawan (Australia)","Australia","Melbourne","Mahishasura Mardini",1995,12000,4.2
T014,"Ambaji (Durga form) shrine","India","Gujarat","Ambaji/Durga",1172,300000,4.7
T015,"Maa Durgaparameshwari (Goa)","India","Ponda","Durgaparameshwari",1500,70000,4.3
;
run;
proc print;run;
Output:
| Obs | Temple_ID | Temple_Name | Country | City | Deity_Aspect | EstablishedYear | Annual_Visitors | Rating |
|---|---|---|---|---|---|---|---|---|
| 1 | T001 | Kali Bari Durga Mandir | India | Kolkata | Kali/Durga | 1690 | 120,000 | 4.6 |
| 2 | T002 | Vaishno Devi (Durga shrine) | India | Katra | Maa Vaishno Devi (Durga form) | 1830 | 850,000 | 4.8 |
| 3 | T003 | Durga Temple (Malaysia) | Malaysia | Penang | Maha Durga | 1905 | 45,000 | 4.1 |
| 4 | T004 | Sri Durga Temple (Singapore) | Singapore | Singapore | Bhairavi:Durgā | 1925 | 38,000 | 4.2 |
| 5 | T005 | Maa Durga Temple (UK) | United Kingdom | London | Chandi-Durga | 2001 | 15,000 | 4.0 |
| 6 | T006 | Durga Mandir (USA) | United States | Newark | Ashta Durgā aspects | 1975 | 22,000 | 4.3 |
| 7 | T007 | Chandi Devi Temple (Haridwar) | India | Haridwar | Chandi (Durga) | 1929 | 200,000 | 4.7 |
| 8 | T008 | Shree Durga Temple (Nepal) | Nepal | Kathmandu | Parvati as Durga | 1800 | 60,000 | 4.4 |
| 9 | T009 | Durga Bari (Mauritius) | Mauritius | Port Louis | Durga (navaratri focus) | 1890 | 12,000 | 4.0 |
| 10 | T010 | Bhadrakali Temple (Kerala) | India | Thiruvananthapuram | Bhadrakali (Durga form) | 1600 | 90,000 | 4.5 |
| 11 | T011 | Shree Amba Mandir (South Africa) | South Africa | Durban | Amba-Durga | 1950 | 18,000 | 4.1 |
| 12 | T012 | Durga Temple (Bangladesh) | Bangladesh | Dhaka | Durga Puja focal | 1910 | 400,000 | 4.6 |
| 13 | T013 | Durga Bhawan (Australia) | Australia | Melbourne | Mahishasura Mardini | 1995 | 12,000 | 4.2 |
| 14 | T014 | Ambaji (Durga form) shrine | India | Gujarat | Ambaji/Durga | 1172 | 300,000 | 4.7 |
| 15 | T015 | Maa Durgaparameshwari (Goa) | India | Ponda | Durgaparameshwari | 1500 | 70,000 | 4.3 |
2. Create formats for Rating bands
proc format;
value rband
low - <4 = "Below Good"
4 - <4.5 = "Good"
4.5 - high = "Excellent";
run;
Log:
3. PROC CONTENTS & PRINT
Purpose: Show dataset structure, variable attributes and order.
proc contents data=durga_temples varnum;
run;
Output:
The CONTENTS Procedure
| Data Set Name | WORK.DURGA_TEMPLES | Observations | 15 |
|---|---|---|---|
| Member Type | DATA | Variables | 8 |
| Engine | V9 | Indexes | 0 |
| Created | 09/09/2025 17:21:38 | Observation Length | 232 |
| Last Modified | 09/09/2025 17:21:38 | Deleted Observations | 0 |
| Protection | Compressed | NO | |
| Data Set Type | Sorted | NO | |
| Label | |||
| Data Representation | SOLARIS_X86_64, LINUX_X86_64, ALPHA_TRU64, LINUX_IA64 | ||
| Encoding | utf-8 Unicode (UTF-8) |
| Engine/Host Dependent Information | |
|---|---|
| Data Set Page Size | 131072 |
| Number of Data Set Pages | 1 |
| First Data Page | 1 |
| Max Obs per Page | 564 |
| Obs in First Data Page | 15 |
| Number of Data Set Repairs | 0 |
| Filename | /saswork/SAS_workFA330001963F_odaws01-apse1-2.oda.sas.com/SAS_work2D220001963F_odaws01-apse1-2.oda.sas.com/durga_temples.sas7bdat |
| Release Created | 9.0401M8 |
| Host Created | Linux |
| Inode Number | 67137652 |
| Access Permission | rw-r--r-- |
| Owner Name | u63247146 |
| File Size | 256KB |
| File Size (bytes) | 262144 |
| Variables in Creation Order | ||||
|---|---|---|---|---|
| # | Variable | Type | Len | Format |
| 1 | Temple_ID | Char | 8 | |
| 2 | Temple_Name | Char | 80 | |
| 3 | Country | Char | 40 | |
| 4 | City | Char | 40 | |
| 5 | Deity_Aspect | Char | 40 | |
| 6 | EstablishedYear | Num | 8 | 4. |
| 7 | Annual_Visitors | Num | 8 | COMMA10. |
| 8 | Rating | Num | 8 | 4.1 |
Purpose: Display all observations for quick visual verification.
proc print data=durga_temples noobs label;
var Temple_ID Temple_Name Country City EstablishedYear Annual_Visitors Rating;
label Temple_ID="ID" Temple_Name="Temple Name" EstablishedYear="Year Founded" Annual_Visitors="Annual Visitors" Rating="Avg Rating";
run;
Output:
| ID | Temple Name | Country | City | Year Founded | Annual Visitors | Avg Rating |
|---|---|---|---|---|---|---|
| T001 | Kali Bari Durga Mandir | India | Kolkata | 1690 | 120,000 | 4.6 |
| T002 | Vaishno Devi (Durga shrine) | India | Katra | 1830 | 850,000 | 4.8 |
| T003 | Durga Temple (Malaysia) | Malaysia | Penang | 1905 | 45,000 | 4.1 |
| T004 | Sri Durga Temple (Singapore) | Singapore | Singapore | 1925 | 38,000 | 4.2 |
| T005 | Maa Durga Temple (UK) | United Kingdom | London | 2001 | 15,000 | 4.0 |
| T006 | Durga Mandir (USA) | United States | Newark | 1975 | 22,000 | 4.3 |
| T007 | Chandi Devi Temple (Haridwar) | India | Haridwar | 1929 | 200,000 | 4.7 |
| T008 | Shree Durga Temple (Nepal) | Nepal | Kathmandu | 1800 | 60,000 | 4.4 |
| T009 | Durga Bari (Mauritius) | Mauritius | Port Louis | 1890 | 12,000 | 4.0 |
| T010 | Bhadrakali Temple (Kerala) | India | Thiruvananthapuram | 1600 | 90,000 | 4.5 |
| T011 | Shree Amba Mandir (South Africa) | South Africa | Durban | 1950 | 18,000 | 4.1 |
| T012 | Durga Temple (Bangladesh) | Bangladesh | Dhaka | 1910 | 400,000 | 4.6 |
| T013 | Durga Bhawan (Australia) | Australia | Melbourne | 1995 | 12,000 | 4.2 |
| T014 | Ambaji (Durga form) shrine | India | Gujarat | 1172 | 300,000 | 4.7 |
| T015 | Maa Durgaparameshwari (Goa) | India | Ponda | 1500 | 70,000 | 4.3 |
4. PROC SORT by Country then Annual_Visitors
Purpose: Sort dataset for grouped analyses and reporting.
proc sort data=durga_temples out=durga_sorted;
by Country descending Annual_Visitors;
run;
proc print;run;
Output:
| Obs | Temple_ID | Temple_Name | Country | City | Deity_Aspect | EstablishedYear | Annual_Visitors | Rating |
|---|---|---|---|---|---|---|---|---|
| 1 | T013 | Durga Bhawan (Australia) | Australia | Melbourne | Mahishasura Mardini | 1995 | 12,000 | 4.2 |
| 2 | T012 | Durga Temple (Bangladesh) | Bangladesh | Dhaka | Durga Puja focal | 1910 | 400,000 | 4.6 |
| 3 | T002 | Vaishno Devi (Durga shrine) | India | Katra | Maa Vaishno Devi (Durga form) | 1830 | 850,000 | 4.8 |
| 4 | T014 | Ambaji (Durga form) shrine | India | Gujarat | Ambaji/Durga | 1172 | 300,000 | 4.7 |
| 5 | T007 | Chandi Devi Temple (Haridwar) | India | Haridwar | Chandi (Durga) | 1929 | 200,000 | 4.7 |
| 6 | T001 | Kali Bari Durga Mandir | India | Kolkata | Kali/Durga | 1690 | 120,000 | 4.6 |
| 7 | T010 | Bhadrakali Temple (Kerala) | India | Thiruvananthapuram | Bhadrakali (Durga form) | 1600 | 90,000 | 4.5 |
| 8 | T015 | Maa Durgaparameshwari (Goa) | India | Ponda | Durgaparameshwari | 1500 | 70,000 | 4.3 |
| 9 | T003 | Durga Temple (Malaysia) | Malaysia | Penang | Maha Durga | 1905 | 45,000 | 4.1 |
| 10 | T009 | Durga Bari (Mauritius) | Mauritius | Port Louis | Durga (navaratri focus) | 1890 | 12,000 | 4.0 |
| 11 | T008 | Shree Durga Temple (Nepal) | Nepal | Kathmandu | Parvati as Durga | 1800 | 60,000 | 4.4 |
| 12 | T004 | Sri Durga Temple (Singapore) | Singapore | Singapore | Bhairavi:Durgā | 1925 | 38,000 | 4.2 |
| 13 | T011 | Shree Amba Mandir (South Africa) | South Africa | Durban | Amba-Durga | 1950 | 18,000 | 4.1 |
| 14 | T005 | Maa Durga Temple (UK) | United Kingdom | London | Chandi-Durga | 2001 | 15,000 | 4.0 |
| 15 | T006 | Durga Mandir (USA) | United States | Newark | Ashta Durgā aspects | 1975 | 22,000 | 4.3 |
5. PROC FREQ on Country and Deity_Aspect
Purpose: Count temples by Country and by Deity_Aspect for categorical summary.
proc freq data=durga_temples;
tables Country Deity_Aspect / nocum nopercent;
run;
Output:
The FREQ Procedure
| Country | Frequency |
|---|---|
| Australia | 1 |
| Bangladesh | 1 |
| India | 6 |
| Malaysia | 1 |
| Mauritius | 1 |
| Nepal | 1 |
| Singapore | 1 |
| South Africa | 1 |
| United Kingdom | 1 |
| United States | 1 |
| Deity_Aspect | Frequency |
|---|---|
| Amba-Durga | 1 |
| Ambaji/Durga | 1 |
| Ashta Durgā aspects | 1 |
| Bhadrakali (Durga form) | 1 |
| Bhairavi:Durgā | 1 |
| Chandi (Durga) | 1 |
| Chandi-Durga | 1 |
| Durga (navaratri focus) | 1 |
| Durga Puja focal | 1 |
| Durgaparameshwari | 1 |
| Kali/Durga | 1 |
| Maa Vaishno Devi (Durga form) | 1 |
| Maha Durga | 1 |
| Mahishasura Mardini | 1 |
| Parvati as Durga | 1 |
6. PROC MEANS for numeric summaries
Purpose: Provide descriptive statistics for numeric variables.
proc means data=durga_temples n mean std min max maxdec=0;
var EstablishedYear Annual_Visitors Rating;
run;
Output:
The MEANS Procedure
| Variable | N | Mean | Std Dev | Minimum | Maximum |
|---|---|---|---|---|---|
EstablishedYear Annual_Visitors Rating | 15 15 15 | 1805 150133 4 | 229 225228 0 | 1172 12000 4 | 2001 850000 5 |
7. PROC SQL: Create aggregated summary by Country
Purpose: Aggregate temple counts and visitor/rating summaries by country.
proc sql;
create table country_summary as
select Country,
count(*) as Num_Temples,
mean(Annual_Visitors) as Avg_Visitors format=comma10.,
median(Rating) as Median_Rating format=4.2,
min(EstablishedYear) as Oldest_Year,
max(EstablishedYear) as Newest_Year
from durga_temples
group by Country
order by Num_Temples desc;
quit;
proc print;run;
Output:
| Obs | Country | Num_Temples | Avg_Visitors | Median_Rating | Oldest_Year | Newest_Year |
|---|---|---|---|---|---|---|
| 1 | India | 6 | 271,667 | 4.65 | 1172 | 1929 |
| 2 | Nepal | 1 | 60,000 | 4.40 | 1800 | 1800 |
| 3 | United States | 1 | 22,000 | 4.30 | 1975 | 1975 |
| 4 | Singapore | 1 | 38,000 | 4.20 | 1925 | 1925 |
| 5 | United Kingdom | 1 | 15,000 | 4.00 | 2001 | 2001 |
| 6 | Mauritius | 1 | 12,000 | 4.00 | 1890 | 1890 |
| 7 | Australia | 1 | 12,000 | 4.20 | 1995 | 1995 |
| 8 | Bangladesh | 1 | 400,000 | 4.60 | 1910 | 1910 |
| 9 | Malaysia | 1 | 45,000 | 4.10 | 1905 | 1905 |
| 10 | South Africa | 1 | 18,000 | 4.10 | 1950 | 1950 |
8. PROC REPORT: formatted table using format created
Purpose: Create printable, columnar report and add computed rating band.
data durga_temples_fix;
set durga_temples;
Rating_num = input(Rating, best12.); /* Convert char → numeric */
run;
proc report data=durga_temples_fix nowd;
columns Temple_ID Temple_Name Country City EstablishedYear Annual_Visitors
Rating_num Rating_Band;
define Rating_num / display "Rating";
define Rating_Band / computed "Rating Band";
compute Rating_Band / char length=12;
if missing(Rating_num) then Rating_Band = 'Unknown';
else Rating_Band = put(Rating_num, rband.);
endcomp;
run;
Output:
| Temple_ID | Temple_Name | Country | City | EstablishedYear | Annual_Visitors | Rating | Rating Band |
|---|---|---|---|---|---|---|---|
| T001 | Kali Bari Durga Mandir | India | Kolkata | 1690 | 120,000 | 4.6 | Excellent |
| T002 | Vaishno Devi (Durga shrine) | India | Katra | 1830 | 850,000 | 4.8 | Excellent |
| T003 | Durga Temple (Malaysia) | Malaysia | Penang | 1905 | 45,000 | 4.1 | Good |
| T004 | Sri Durga Temple (Singapore) | Singapore | Singapore | 1925 | 38,000 | 4.2 | Good |
| T005 | Maa Durga Temple (UK) | United Kingdom | London | 2001 | 15,000 | 4 | Good |
| T006 | Durga Mandir (USA) | United States | Newark | 1975 | 22,000 | 4.3 | Good |
| T007 | Chandi Devi Temple (Haridwar) | India | Haridwar | 1929 | 200,000 | 4.7 | Excellent |
| T008 | Shree Durga Temple (Nepal) | Nepal | Kathmandu | 1800 | 60,000 | 4.4 | Good |
| T009 | Durga Bari (Mauritius) | Mauritius | Port Louis | 1890 | 12,000 | 4 | Good |
| T010 | Bhadrakali Temple (Kerala) | India | Thiruvananthapuram | 1600 | 90,000 | 4.5 | Excellent |
| T011 | Shree Amba Mandir (South Africa) | South Africa | Durban | 1950 | 18,000 | 4.1 | Good |
| T012 | Durga Temple (Bangladesh) | Bangladesh | Dhaka | 1910 | 400,000 | 4.6 | Excellent |
| T013 | Durga Bhawan (Australia) | Australia | Melbourne | 1995 | 12,000 | 4.2 | Good |
| T014 | Ambaji (Durga form) shrine | India | Gujarat | 1172 | 300,000 | 4.7 | Excellent |
| T015 | Maa Durgaparameshwari (Goa) | India | Ponda | 1500 | 70,000 | 4.3 | Good |
9. MACRO: create country-specific datasets and basic stats
Purpose: Quickly create per-country datasets and run basic summaries.
%macro country_report(country=);
%let dsname = durga_%sysfunc(translate(&country, _, %str( )));
proc sql noprint;
create table &dsname as
select * from durga_temples
where upcase(country) = upcase("&country");
quit;
proc means data=&dsname n mean std min max maxdec=0;
var Annual_Visitors Rating;
run;
proc print data=&dsname noobs;
title "Temple listing for &country";
run;
%mend country_report;
%country_report(country=India);
Output:
The MEANS Procedure
| Variable | N | Mean | Std Dev | Minimum | Maximum |
|---|---|---|---|---|---|
Annual_Visitors Rating | 6 6 | 271667 5 | 295663 0 | 70000 4 | 850000 5 |
| Temple_ID | Temple_Name | Country | City | Deity_Aspect | EstablishedYear | Annual_Visitors | Rating |
|---|---|---|---|---|---|---|---|
| T001 | Kali Bari Durga Mandir | India | Kolkata | Kali/Durga | 1690 | 120,000 | 4.6 |
| T002 | Vaishno Devi (Durga shrine) | India | Katra | Maa Vaishno Devi (Durga form) | 1830 | 850,000 | 4.8 |
| T007 | Chandi Devi Temple (Haridwar) | India | Haridwar | Chandi (Durga) | 1929 | 200,000 | 4.7 |
| T010 | Bhadrakali Temple (Kerala) | India | Thiruvananthapuram | Bhadrakali (Durga form) | 1600 | 90,000 | 4.5 |
| T014 | Ambaji (Durga form) shrine | India | Gujarat | Ambaji/Durga | 1172 | 300,000 | 4.7 |
| T015 | Maa Durgaparameshwari (Goa) | India | Ponda | Durgaparameshwari | 1500 | 70,000 | 4.3 |
%country_report(country=United States);
Output:
The MEANS Procedure
| Variable | N | Mean | Std Dev | Minimum | Maximum |
|---|---|---|---|---|---|
Annual_Visitors Rating | 1 1 | 22000 4 | . . | 22000 4 | 22000 4 |
| Temple_ID | Temple_Name | Country | City | Deity_Aspect | EstablishedYear | Annual_Visitors | Rating |
|---|---|---|---|---|---|---|---|
| T006 | Durga Mandir (USA) | United States | Newark | Ashta Durgā aspects | 1975 | 22,000 | 4.3 |
10. MACRO: generate frequency report for Deity_Aspect
Purpose: Reusable macro to run Deity aspect frequency counts.
%macro aspect_freq;
proc freq data=durga_temples;
tables Deity_Aspect / list nocum;
title "Frequency of Deity Aspect (Durga forms)";
run;
%mend aspect_freq;
%aspect_freq
The FREQ Procedure
| Deity_Aspect | Frequency | Percent |
|---|---|---|
| Amba-Durga | 1 | 6.67 |
| Ambaji/Durga | 1 | 6.67 |
| Ashta Durgā aspects | 1 | 6.67 |
| Bhadrakali (Durga form) | 1 | 6.67 |
| Bhairavi:Durgā | 1 | 6.67 |
| Chandi (Durga) | 1 | 6.67 |
| Chandi-Durga | 1 | 6.67 |
| Durga (navaratri focus) | 1 | 6.67 |
| Durga Puja focal | 1 | 6.67 |
| Durgaparameshwari | 1 | 6.67 |
| Kali/Durga | 1 | 6.67 |
| Maa Vaishno Devi (Durga form) | 1 | 6.67 |
| Maha Durga | 1 | 6.67 |
| Mahishasura Mardini | 1 | 6.67 |
| Parvati as Durga | 1 | 6.67 |
No comments:
Post a Comment