349.INTERNET SERVICE PROVIDER(ISP) DATA ANALYSIS USING DATA STEP | PROC SQL | PROC MEANS | PROC FREQ | PROC SGPLOT | MACROS | DATE FUNCTIONS | PROC SORT | PROC APPEND | MERGE | PROC TRANSPOSE OPERATIONS

INTERNET SERVICE PROVIDER(ISP) DATA ANALYSIS USING DATA STEP | PROC SQL | PROC MEANS | PROC FREQ | PROC SGPLOT | MACROS | DATE FUNCTIONS | PROC SORT | PROC APPEND | MERGE |  PROC TRANSPOSE OPERATIONS

options nocenter;

1.DATASET CREATION

data isp_master;

    length Provider_Name $20 Coverage_Area $12;

    format Launch_Date Review_Date Analysis_Date date9.;

    input Provider_Name $ Speed Coverage_Area $ Cost Subscribers Ratings

          Launch_Date :date9. Review_Date :date9.;

     Analysis_Date = '01JAN2025'd;      

     datalines;

Airtel       200 Urban      999  5000000 4.5 15JAN2015 10DEC2024

Jio          300 Urban      699  8000000 4.7 01SEP2016 05DEC2024

BSNL         100 Rural      499  2000000 3.8 10MAR2010 20NOV2024

ACT          250 Urban      899  1800000 4.4 01APR2012 15DEC2024

Hathway      150 SemiUrban  599  1200000 4.0 05MAY2014 18NOV2024

Tikona        80 Rural      399   900000 3.6 20JUN2013 01DEC2024

Spectra      500 Urban     1299   600000 4.8 01JAN2018 22DEC2024

Alliance     120 SemiUrban  549   750000 3.9 12AUG2016 30NOV2024

Excitel      400 Urban      799  1400000 4.6 10OCT2017 25DEC2024

YouBroadband 180 SemiUrban  649  1000000 4.1 08FEB2011 05DEC2024

RailWire      90 Rural      349   850000 3.7 15JUL2015 28NOV2024

GTPL         160 SemiUrban  699  1100000 4.2 01JAN2014 12DEC2024

;

run;

proc print data=isp_master;

run;

OUTPUT:

ObsProvider_NameCoverage_AreaLaunch_DateReview_DateAnalysis_DateSpeedCostSubscribersRatings
1AirtelUrban15JAN201510DEC202401JAN202520099950000004.5
2JioUrban01SEP201605DEC202401JAN202530069980000004.7
3BSNLRural10MAR201020NOV202401JAN202510049920000003.8
4ACTUrban01APR201215DEC202401JAN202525089918000004.4
5HathwaySemiUrban05MAY201418NOV202401JAN202515059912000004.0
6TikonaRural20JUN201301DEC202401JAN2025803999000003.6
7SpectraUrban01JAN201822DEC202401JAN202550012996000004.8
8AllianceSemiUrban12AUG201630NOV202401JAN20251205497500003.9
9ExcitelUrban10OCT201725DEC202401JAN202540079914000004.6
10YouBroadbandSemiUrban08FEB201105DEC202401JAN202518064910000004.1
11RailWireRural15JUL201528NOV202401JAN2025903498500003.7
12GTPLSemiUrban01JAN201412DEC202401JAN202516069911000004.2


2.DATE CALCULATIONS USING INTCK, INTNX, MDY

data isp_dates;

    set isp_master;

    

    Years_In_Service = intck('year', Launch_Date, Analysis_Date);

    Next_Review_Date = intnx('month', Review_Date, 6, 'same');

    Financial_Year_Start = mdy(4,1,year(Analysis_Date));

    

    format Next_Review_Date Financial_Year_Start date9.;

run;

proc print data=isp_dates;

run;

OUTPUT:

ObsProvider_NameCoverage_AreaLaunch_DateReview_DateAnalysis_DateSpeedCostSubscribersRatingsYears_In_ServiceNext_Review_DateFinancial_Year_Start
1AirtelUrban15JAN201510DEC202401JAN202520099950000004.51010JUN202501APR2025
2JioUrban01SEP201605DEC202401JAN202530069980000004.7905JUN202501APR2025
3BSNLRural10MAR201020NOV202401JAN202510049920000003.81520MAY202501APR2025
4ACTUrban01APR201215DEC202401JAN202525089918000004.41315JUN202501APR2025
5HathwaySemiUrban05MAY201418NOV202401JAN202515059912000004.01118MAY202501APR2025
6TikonaRural20JUN201301DEC202401JAN2025803999000003.61201JUN202501APR2025
7SpectraUrban01JAN201822DEC202401JAN202550012996000004.8722JUN202501APR2025
8AllianceSemiUrban12AUG201630NOV202401JAN20251205497500003.9930MAY202501APR2025
9ExcitelUrban10OCT201725DEC202401JAN202540079914000004.6825JUN202501APR2025
10YouBroadbandSemiUrban08FEB201105DEC202401JAN202518064910000004.11405JUN202501APR2025
11RailWireRural15JUL201528NOV202401JAN2025903498500003.71028MAY202501APR2025
12GTPLSemiUrban01JAN201412DEC202401JAN202516069911000004.21112JUN202501APR2025


3.PROC SQL – STRUCTURED DATA EXTRACTION

proc sql;

    create table isp_sql_summary as

    select Provider_Name,Speed,Cost,Subscribers,Ratings,Years_In_Service

    from isp_dates

    where Speed >= 150

    order by Ratings desc;

quit;

proc print data=isp_sql_summary;

run;

OUTPUT:

ObsProvider_NameSpeedCostSubscribersRatingsYears_In_Service
1Spectra50012996000004.87
2Jio30069980000004.79
3Excitel40079914000004.68
4Airtel20099950000004.510
5ACT25089918000004.413
6GTPL16069911000004.211
7YouBroadband18064910000004.114
8Hathway15059912000004.011


4.PROC MEANS – STATISTICAL SUMMARIZATION

proc means data=isp_dates mean min max sum;

    var Speed Cost Subscribers Ratings Years_In_Service;

run;

OUTPUT:

The MEANS Procedure

VariableMeanMinimumMaximumSum
Speed
Cost
Subscribers
Ratings
Years_In_Service
210.8333333
703.1666667
2050000.00
4.1916667
10.7500000
80.0000000
349.0000000
600000.00
3.6000000
7.0000000
500.0000000
1299.00
8000000.00
4.8000000
15.0000000
2530.00
8438.00
24600000.00
50.3000000
129.0000000

5.PROC FREQ – CATEGORICAL ANALYSIS

proc freq data=isp_dates;

    tables Coverage_Area Ratings;

run;

OUTPUT:

The FREQ Procedure

Coverage_AreaFrequencyPercentCumulative
Frequency
Cumulative
Percent
Rural325.00325.00
SemiUrban433.33758.33
Urban541.6712100.00
RatingsFrequencyPercentCumulative
Frequency
Cumulative
Percent
3.618.3318.33
3.718.33216.67
3.818.33325.00
3.918.33433.33
418.33541.67
4.118.33650.00
4.218.33758.33
4.418.33866.67
4.518.33975.00
4.618.331083.33
4.718.331191.67
4.818.3312100.00

6.MACRO FOR SERVICE-LEVEL CLASSIFICATION

%macro service_class;

data isp_classified;

    set isp_dates;

    length Service_Level $10;

    if Speed >= 300 and Ratings >= 4.5 then Service_Level = "PREMIUM";

    else if Speed >= 150 then Service_Level = "STANDARD";

    else Service_Level = "BASIC";

run;

proc print data=isp_classified;

run;


%mend;


%service_class;

OUTPUT:

ObsProvider_NameCoverage_AreaLaunch_DateReview_DateAnalysis_DateSpeedCostSubscribersRatingsYears_In_ServiceNext_Review_DateFinancial_Year_StartService_Level
1AirtelUrban15JAN201510DEC202401JAN202520099950000004.51010JUN202501APR2025STANDARD
2JioUrban01SEP201605DEC202401JAN202530069980000004.7905JUN202501APR2025PREMIUM
3BSNLRural10MAR201020NOV202401JAN202510049920000003.81520MAY202501APR2025BASIC
4ACTUrban01APR201215DEC202401JAN202525089918000004.41315JUN202501APR2025STANDARD
5HathwaySemiUrban05MAY201418NOV202401JAN202515059912000004.01118MAY202501APR2025STANDARD
6TikonaRural20JUN201301DEC202401JAN2025803999000003.61201JUN202501APR2025BASIC
7SpectraUrban01JAN201822DEC202401JAN202550012996000004.8722JUN202501APR2025PREMIUM
8AllianceSemiUrban12AUG201630NOV202401JAN20251205497500003.9930MAY202501APR2025BASIC
9ExcitelUrban10OCT201725DEC202401JAN202540079914000004.6825JUN202501APR2025PREMIUM
10YouBroadbandSemiUrban08FEB201105DEC202401JAN202518064910000004.11405JUN202501APR2025STANDARD
11RailWireRural15JUL201528NOV202401JAN2025903498500003.71028MAY202501APR2025BASIC
12GTPLSemiUrban01JAN201412DEC202401JAN202516069911000004.21112JUN202501APR2025STANDARD


7.PROC SGPLOT – VISUAL ANALYTICS

proc sgplot data=isp_classified;

    vbar Provider_Name / response=Subscribers;

    title "SUBSCRIBER DISTRIBUTION BY ISP";

run;

OUTPUT:

The SGPlot Procedure


8.DATA INTEGRATION – MERGE OPERATION

data isp_cost;

    set isp_master;

    keep Provider_Name Cost;

run;

proc print data=isp_cost;

run;

OUTPUT:

ObsProvider_NameCost
1Airtel999
2Jio699
3BSNL499
4ACT899
5Hathway599
6Tikona399
7Spectra1299
8Alliance549
9Excitel799
10YouBroadband649
11RailWire349
12GTPL699

proc sort data=isp_classified;

    by Provider_Name;

run;

proc print data=isp_classified;

run;

OUTPUT:

ObsProvider_NameCoverage_AreaLaunch_DateReview_DateAnalysis_DateSpeedCostSubscribersRatingsYears_In_ServiceNext_Review_DateFinancial_Year_StartService_Level
1ACTUrban01APR201215DEC202401JAN202525089918000004.41315JUN202501APR2025STANDARD
2AirtelUrban15JAN201510DEC202401JAN202520099950000004.51010JUN202501APR2025STANDARD
3AllianceSemiUrban12AUG201630NOV202401JAN20251205497500003.9930MAY202501APR2025BASIC
4BSNLRural10MAR201020NOV202401JAN202510049920000003.81520MAY202501APR2025BASIC
5ExcitelUrban10OCT201725DEC202401JAN202540079914000004.6825JUN202501APR2025PREMIUM
6GTPLSemiUrban01JAN201412DEC202401JAN202516069911000004.21112JUN202501APR2025STANDARD
7HathwaySemiUrban05MAY201418NOV202401JAN202515059912000004.01118MAY202501APR2025STANDARD
8JioUrban01SEP201605DEC202401JAN202530069980000004.7905JUN202501APR2025PREMIUM
9RailWireRural15JUL201528NOV202401JAN2025903498500003.71028MAY202501APR2025BASIC
10SpectraUrban01JAN201822DEC202401JAN202550012996000004.8722JUN202501APR2025PREMIUM
11TikonaRural20JUN201301DEC202401JAN2025803999000003.61201JUN202501APR2025BASIC
12YouBroadbandSemiUrban08FEB201105DEC202401JAN202518064910000004.11405JUN202501APR2025STANDARD


proc sort data=isp_cost;

    by Provider_Name;

run;

proc print data=isp_cost;

run;

OUTPUT:

ObsProvider_NameCost
1ACT899
2Airtel999
3Alliance549
4BSNL499
5Excitel799
6GTPL699
7Hathway599
8Jio699
9RailWire349
10Spectra1299
11Tikona399
12YouBroadband649


data isp_merge;

    merge isp_classified(in=a) isp_cost(in=b);

    by Provider_Name;

    if a;

run;

proc print data=isp_merge;

run;

OUTPUT:

ObsProvider_NameCoverage_AreaLaunch_DateReview_DateAnalysis_DateSpeedCostSubscribersRatingsYears_In_ServiceNext_Review_DateFinancial_Year_StartService_Level
1ACTUrban01APR201215DEC202401JAN202525089918000004.41315JUN202501APR2025STANDARD
2AirtelUrban15JAN201510DEC202401JAN202520099950000004.51010JUN202501APR2025STANDARD
3AllianceSemiUrban12AUG201630NOV202401JAN20251205497500003.9930MAY202501APR2025BASIC
4BSNLRural10MAR201020NOV202401JAN202510049920000003.81520MAY202501APR2025BASIC
5ExcitelUrban10OCT201725DEC202401JAN202540079914000004.6825JUN202501APR2025PREMIUM
6GTPLSemiUrban01JAN201412DEC202401JAN202516069911000004.21112JUN202501APR2025STANDARD
7HathwaySemiUrban05MAY201418NOV202401JAN202515059912000004.01118MAY202501APR2025STANDARD
8JioUrban01SEP201605DEC202401JAN202530069980000004.7905JUN202501APR2025PREMIUM
9RailWireRural15JUL201528NOV202401JAN2025903498500003.71028MAY202501APR2025BASIC
10SpectraUrban01JAN201822DEC202401JAN202550012996000004.8722JUN202501APR2025PREMIUM
11TikonaRural20JUN201301DEC202401JAN2025803999000003.61201JUN202501APR2025BASIC
12YouBroadbandSemiUrban08FEB201105DEC202401JAN202518064910000004.11405JUN202501APR2025STANDARD


9.APPEND – HISTORICAL DATA EXTENSION

data isp_new;

    set isp_master(obs=2);

run;

proc print data=isp_new;

run;

OUTPUT:

ObsProvider_NameCoverage_AreaLaunch_DateReview_DateAnalysis_DateSpeedCostSubscribersRatings
1AirtelUrban15JAN201510DEC202401JAN202520099950000004.5
2JioUrban01SEP201605DEC202401JAN202530069980000004.7


proc append base=isp_master 

            data=isp_new force;

run;

proc print data=isp_master;

run;

OUTPUT:

ObsProvider_NameCoverage_AreaLaunch_DateReview_DateAnalysis_DateSpeedCostSubscribersRatings
1AirtelUrban15JAN201510DEC202401JAN202520099950000004.5
2JioUrban01SEP201605DEC202401JAN202530069980000004.7
3BSNLRural10MAR201020NOV202401JAN202510049920000003.8
4ACTUrban01APR201215DEC202401JAN202525089918000004.4
5HathwaySemiUrban05MAY201418NOV202401JAN202515059912000004.0
6TikonaRural20JUN201301DEC202401JAN2025803999000003.6
7SpectraUrban01JAN201822DEC202401JAN202550012996000004.8
8AllianceSemiUrban12AUG201630NOV202401JAN20251205497500003.9
9ExcitelUrban10OCT201725DEC202401JAN202540079914000004.6
10YouBroadbandSemiUrban08FEB201105DEC202401JAN202518064910000004.1
11RailWireRural15JUL201528NOV202401JAN2025903498500003.7
12GTPLSemiUrban01JAN201412DEC202401JAN202516069911000004.2
13AirtelUrban15JAN201510DEC202401JAN202520099950000004.5
14JioUrban01SEP201605DEC202401JAN202530069980000004.7


10.TRANSPOSE – STRUCTURAL TRANSFORMATION

proc transpose data=isp_classified out=isp_transposed;

    by Provider_Name;

    var Speed Cost Subscribers Ratings;

run;

proc print data=isp_transposed;

run;

OUTPUT:

ObsProvider_Name_NAME_COL1
1ACTSpeed250.0
2ACTCost899.0
3ACTSubscribers1800000.0
4ACTRatings4.4
5AirtelSpeed200.0
6AirtelCost999.0
7AirtelSubscribers5000000.0
8AirtelRatings4.5
9AllianceSpeed120.0
10AllianceCost549.0
11AllianceSubscribers750000.0
12AllianceRatings3.9
13BSNLSpeed100.0
14BSNLCost499.0
15BSNLSubscribers2000000.0
16BSNLRatings3.8
17ExcitelSpeed400.0
18ExcitelCost799.0
19ExcitelSubscribers1400000.0
20ExcitelRatings4.6
21GTPLSpeed160.0
22GTPLCost699.0
23GTPLSubscribers1100000.0
24GTPLRatings4.2
25HathwaySpeed150.0
26HathwayCost599.0
27HathwaySubscribers1200000.0
28HathwayRatings4.0
29JioSpeed300.0
30JioCost699.0
31JioSubscribers8000000.0
32JioRatings4.7
33RailWireSpeed90.0
34RailWireCost349.0
35RailWireSubscribers850000.0
36RailWireRatings3.7
37SpectraSpeed500.0
38SpectraCost1299.0
39SpectraSubscribers600000.0
40SpectraRatings4.8
41TikonaSpeed80.0
42TikonaCost399.0
43TikonaSubscribers900000.0
44TikonaRatings3.6
45YouBroadbandSpeed180.0
46YouBroadbandCost649.0
47YouBroadbandSubscribers1000000.0
48YouBroadbandRatings4.1


YESTERDAY'S QUESTION:

10.PROC MEANS

proc means data=work.space_station;

    var Orbit_Height Crew_Capacity;

run;

proc means data=work.space_stations;

    var Orbit_Height Crew_Capacity;

run;

**Dataset name is space_stations

SAS will throw:

ERROR: File WORK.SPACE_STATION.DATA does not exist

/* Note: In practice above there is an Invalid in this code Find it,Correct it and Use it /*

OUTPUT:

The MEANS Procedure

VariableNMeanStd DevMinimumMaximum
Orbit_Height
Crew_Capacity
14
14
390.4285714
4.7142857
94.0357659
1.7288756
200.0000000
3.0000000
600.0000000
8.0000000



To Visit My Previous Online Streaming Flatform Dataset:Click Here
To Visit My Previous Statistical Evaluation Of Clinical Trials:Click Here
To Visit My Previous Unlocking Retail Insights Dataset:Click Here
To Visit My Previous Sas Interview Questions-1:Click Here



Follow Us On : 


 


--- FOLLOW OUR BLOG FOR MORE INFORMATION.

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

Comments

Popular posts from this blog

409.Can We Build a Reliable Emergency Services Analytics & Fraud Detection System in SAS While Identifying and Fixing Intentional Errors?

397.If a satellite has excellent signal strength but very high latency, can it still deliver good quality communication? Why or why not?A Sas Study

401.How Efficient Are Global Data Centers? A Complete SAS Analytics Study