TRANSPORT ROUTES DATA ANALYSIS USING SAS DATA STEP | PROC SQL | PROC MEANS | PROC REG | PROC SGPLOT | MACROS | DATE FUNCTIONS (MDY-INTNX-INTCK) | APPEND | MERGE | SET | TRANSPOSE | PROC COPY
options nocenter;
1.TRANSPORT ROUTES DATASET CREATION
data transport_routes;
length Route_Name $25 City $15;
format Start_Date Analysis_Date date9.;
Analysis_Date = '01JAN2026'd;
input Route_Name $ City $ Stops Distance Travelers Revenue Start_Date :date9.;
Route_Age_Years = intck('year', Start_Date, Analysis_Date);
datalines;
BlueLine_Metro Hyderabad 22 29.5 185000 750000 15MAR2015
RedLine_Metro Delhi 30 34.2 240000 980000 10JAN2012
GreenBus_Corridor Pune 18 21.0 95000 320000 01JUL2018
CityBus_Route12 Chennai 25 27.8 110000 410000 05MAY2016
Suburban_Train1 Mumbai 40 45.0 310000 1250000 12DEC2008
Airport_Express Delhi 10 22.0 70000 520000 20FEB2011
Metro_Orange Jaipur 14 16.5 52000 210000 01APR2019
BusRapid_A1 Ahmedabad 20 24.0 88000 360000 18AUG2017
RingRail_Outer Kolkata 35 39.0 145000 670000 25NOV2014
CityLink_Bus9 Kochi 15 19.2 47000 180000 11JAN2020
Metro_Purple Bengaluru 28 32.4 195000 820000 03SEP2013
HillRail_Shuttle Shimla 8 9.5 18000 95000 01JAN2021
;
run;
proc print data=transport_routes;
run;
OUTPUT:
| Obs | Route_Name | City | Start_Date | Analysis_Date | Stops | Distance | Travelers | Revenue | Route_Age_Years |
|---|---|---|---|---|---|---|---|---|---|
| 1 | BlueLine_Metro | Hyderabad | 15MAR2015 | 01JAN2026 | 22 | 29.5 | 185000 | 750000 | 11 |
| 2 | RedLine_Metro | Delhi | 10JAN2012 | 01JAN2026 | 30 | 34.2 | 240000 | 980000 | 14 |
| 3 | GreenBus_Corridor | Pune | 01JUL2018 | 01JAN2026 | 18 | 21.0 | 95000 | 320000 | 8 |
| 4 | CityBus_Route12 | Chennai | 05MAY2016 | 01JAN2026 | 25 | 27.8 | 110000 | 410000 | 10 |
| 5 | Suburban_Train1 | Mumbai | 12DEC2008 | 01JAN2026 | 40 | 45.0 | 310000 | 1250000 | 18 |
| 6 | Airport_Express | Delhi | 20FEB2011 | 01JAN2026 | 10 | 22.0 | 70000 | 520000 | 15 |
| 7 | Metro_Orange | Jaipur | 01APR2019 | 01JAN2026 | 14 | 16.5 | 52000 | 210000 | 7 |
| 8 | BusRapid_A1 | Ahmedabad | 18AUG2017 | 01JAN2026 | 20 | 24.0 | 88000 | 360000 | 9 |
| 9 | RingRail_Outer | Kolkata | 25NOV2014 | 01JAN2026 | 35 | 39.0 | 145000 | 670000 | 12 |
| 10 | CityLink_Bus9 | Kochi | 11JAN2020 | 01JAN2026 | 15 | 19.2 | 47000 | 180000 | 6 |
| 11 | Metro_Purple | Bengaluru | 03SEP2013 | 01JAN2026 | 28 | 32.4 | 195000 | 820000 | 13 |
| 12 | HillRail_Shuttle | Shimla | 01JAN2021 | 01JAN2026 | 8 | 9.5 | 18000 | 95000 | 5 |
2.DATA VALIDATION – PROC CONTENTS & PRINT
proc contents data=transport_routes;
run;
OUTPUT:
The CONTENTS Procedure
| Data Set Name | WORK.TRANSPORT_ROUTES | Observations | 12 |
|---|---|---|---|
| Member Type | DATA | Variables | 9 |
| Engine | V9 | Indexes | 0 |
| Created | 01/05/2026 07:20:26 | Observation Length | 96 |
| Last Modified | 01/05/2026 07:20:26 | 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 | 1363 |
| Obs in First Data Page | 12 |
| Number of Data Set Repairs | 0 |
| Filename | /saswork/SAS_work7ECA00012603_odaws01-apse1-2.oda.sas.com/SAS_workA2B100012603_odaws01-apse1-2.oda.sas.com/transport_routes.sas7bdat |
| Release Created | 9.0401M8 |
| Host Created | Linux |
| Inode Number | 67108910 |
| Access Permission | rw-r--r-- |
| Owner Name | u63247146 |
| File Size | 256KB |
| File Size (bytes) | 262144 |
| Alphabetic List of Variables and Attributes | ||||
|---|---|---|---|---|
| # | Variable | Type | Len | Format |
| 4 | Analysis_Date | Num | 8 | DATE9. |
| 2 | City | Char | 15 | |
| 6 | Distance | Num | 8 | |
| 8 | Revenue | Num | 8 | |
| 9 | Route_Age_Years | Num | 8 | |
| 1 | Route_Name | Char | 25 | |
| 3 | Start_Date | Num | 8 | DATE9. |
| 5 | Stops | Num | 8 | |
| 7 | Travelers | Num | 8 | |
proc print data=transport_routes(obs=5);
run;
OUTPUT:
| Obs | Route_Name | City | Start_Date | Analysis_Date | Stops | Distance | Travelers | Revenue | Route_Age_Years |
|---|---|---|---|---|---|---|---|---|---|
| 1 | BlueLine_Metro | Hyderabad | 15MAR2015 | 01JAN2026 | 22 | 29.5 | 185000 | 750000 | 11 |
| 2 | RedLine_Metro | Delhi | 10JAN2012 | 01JAN2026 | 30 | 34.2 | 240000 | 980000 | 14 |
| 3 | GreenBus_Corridor | Pune | 01JUL2018 | 01JAN2026 | 18 | 21.0 | 95000 | 320000 | 8 |
| 4 | CityBus_Route12 | Chennai | 05MAY2016 | 01JAN2026 | 25 | 27.8 | 110000 | 410000 | 10 |
| 5 | Suburban_Train1 | Mumbai | 12DEC2008 | 01JAN2026 | 40 | 45.0 | 310000 | 1250000 | 18 |
proc means data=transport_routes mean min max sum;
var Stops Distance Travelers Revenue Route_Age_Years;
run;
OUTPUT:
The MEANS Procedure
| Variable | Mean | Minimum | Maximum | Sum |
|---|---|---|---|---|
Stops Distance Travelers Revenue Route_Age_Years | 22.0833333 26.6750000 129583.33 547083.33 10.6666667 | 8.0000000 9.5000000 18000.00 95000.00 5.0000000 | 40.0000000 45.0000000 310000.00 1250000.00 18.0000000 | 265.0000000 320.1000000 1555000.00 6565000.00 128.0000000 |
4.SQL-BASED ANALYSIS – PROC SQL
proc sql;
create table city_summary as
select City,
count(*) as Total_Routes,
sum(Travelers) as Total_Travelers,
sum(Revenue) as Total_Revenue
from transport_routes
group by City;
quit;
proc print data=city_summary;
run;
OUTPUT:
| Obs | City | Total_Routes | Total_Travelers | Total_Revenue |
|---|---|---|---|---|
| 1 | Ahmedabad | 1 | 88000 | 360000 |
| 2 | Bengaluru | 1 | 195000 | 820000 |
| 3 | Chennai | 1 | 110000 | 410000 |
| 4 | Delhi | 2 | 310000 | 1500000 |
| 5 | Hyderabad | 1 | 185000 | 750000 |
| 6 | Jaipur | 1 | 52000 | 210000 |
| 7 | Kochi | 1 | 47000 | 180000 |
| 8 | Kolkata | 1 | 145000 | 670000 |
| 9 | Mumbai | 1 | 310000 | 1250000 |
| 10 | Pune | 1 | 95000 | 320000 |
| 11 | Shimla | 1 | 18000 | 95000 |
5.MACRO FOR ROUTE PERFORMANCE RATING
%macro route_rating(inset=, outset=);
data &outset;
set &inset;
if Revenue >= 800000 then Performance = "Excellent";
else if Revenue >= 400000 then Performance = "Good";
else if Revenue >= 200000 then Performance = "Average";
else Performance = "Low";
run;
proc print data=&outset;
run;
%mend;
%route_rating(inset=transport_routes, outset=routes_rated);
OUTPUT:
| Obs | Route_Name | City | Start_Date | Analysis_Date | Stops | Distance | Travelers | Revenue | Route_Age_Years | Performance |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | BlueLine_Metro | Hyderabad | 15MAR2015 | 01JAN2026 | 22 | 29.5 | 185000 | 750000 | 11 | Good |
| 2 | RedLine_Metro | Delhi | 10JAN2012 | 01JAN2026 | 30 | 34.2 | 240000 | 980000 | 14 | Excellent |
| 3 | GreenBus_Corridor | Pune | 01JUL2018 | 01JAN2026 | 18 | 21.0 | 95000 | 320000 | 8 | Average |
| 4 | CityBus_Route12 | Chennai | 05MAY2016 | 01JAN2026 | 25 | 27.8 | 110000 | 410000 | 10 | Good |
| 5 | Suburban_Train1 | Mumbai | 12DEC2008 | 01JAN2026 | 40 | 45.0 | 310000 | 1250000 | 18 | Excellent |
| 6 | Airport_Express | Delhi | 20FEB2011 | 01JAN2026 | 10 | 22.0 | 70000 | 520000 | 15 | Good |
| 7 | Metro_Orange | Jaipur | 01APR2019 | 01JAN2026 | 14 | 16.5 | 52000 | 210000 | 7 | Average |
| 8 | BusRapid_A1 | Ahmedabad | 18AUG2017 | 01JAN2026 | 20 | 24.0 | 88000 | 360000 | 9 | Average |
| 9 | RingRail_Outer | Kolkata | 25NOV2014 | 01JAN2026 | 35 | 39.0 | 145000 | 670000 | 12 | Good |
| 10 | CityLink_Bus9 | Kochi | 11JAN2020 | 01JAN2026 | 15 | 19.2 | 47000 | 180000 | 6 | Low |
| 11 | Metro_Purple | Bengaluru | 03SEP2013 | 01JAN2026 | 28 | 32.4 | 195000 | 820000 | 13 | Excellent |
| 12 | HillRail_Shuttle | Shimla | 01JAN2021 | 01JAN2026 | 8 | 9.5 | 18000 | 95000 | 5 | Low |
6.TIME-BASED ANALYSIS – INTNX AND MDY
data route_dates;
set transport_routes;
Next_Review_Date = intnx('month', Analysis_Date, 6, 'same');
Financial_Year_Start = mdy(4,1,year(Analysis_Date));
format Next_Review_Date Financial_Year_Start date9.;
run;
proc print data=route_dates;
run;
OUTPUT:
| Obs | Route_Name | City | Start_Date | Analysis_Date | Stops | Distance | Travelers | Revenue | Route_Age_Years | Next_Review_Date | Financial_Year_Start |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | BlueLine_Metro | Hyderabad | 15MAR2015 | 01JAN2026 | 22 | 29.5 | 185000 | 750000 | 11 | 01JUL2026 | 01APR2026 |
| 2 | RedLine_Metro | Delhi | 10JAN2012 | 01JAN2026 | 30 | 34.2 | 240000 | 980000 | 14 | 01JUL2026 | 01APR2026 |
| 3 | GreenBus_Corridor | Pune | 01JUL2018 | 01JAN2026 | 18 | 21.0 | 95000 | 320000 | 8 | 01JUL2026 | 01APR2026 |
| 4 | CityBus_Route12 | Chennai | 05MAY2016 | 01JAN2026 | 25 | 27.8 | 110000 | 410000 | 10 | 01JUL2026 | 01APR2026 |
| 5 | Suburban_Train1 | Mumbai | 12DEC2008 | 01JAN2026 | 40 | 45.0 | 310000 | 1250000 | 18 | 01JUL2026 | 01APR2026 |
| 6 | Airport_Express | Delhi | 20FEB2011 | 01JAN2026 | 10 | 22.0 | 70000 | 520000 | 15 | 01JUL2026 | 01APR2026 |
| 7 | Metro_Orange | Jaipur | 01APR2019 | 01JAN2026 | 14 | 16.5 | 52000 | 210000 | 7 | 01JUL2026 | 01APR2026 |
| 8 | BusRapid_A1 | Ahmedabad | 18AUG2017 | 01JAN2026 | 20 | 24.0 | 88000 | 360000 | 9 | 01JUL2026 | 01APR2026 |
| 9 | RingRail_Outer | Kolkata | 25NOV2014 | 01JAN2026 | 35 | 39.0 | 145000 | 670000 | 12 | 01JUL2026 | 01APR2026 |
| 10 | CityLink_Bus9 | Kochi | 11JAN2020 | 01JAN2026 | 15 | 19.2 | 47000 | 180000 | 6 | 01JUL2026 | 01APR2026 |
| 11 | Metro_Purple | Bengaluru | 03SEP2013 | 01JAN2026 | 28 | 32.4 | 195000 | 820000 | 13 | 01JUL2026 | 01APR2026 |
| 12 | HillRail_Shuttle | Shimla | 01JAN2021 | 01JAN2026 | 8 | 9.5 | 18000 | 95000 | 5 | 01JUL2026 | 01APR2026 |
7.REGRESSION ANALYSIS – PROC REG
proc reg data=transport_routes;
model Revenue = Travelers Distance Stops;
run;
quit;
OUTPUT:
The REG Procedure
Model: MODEL1
Dependent Variable: Revenue
| Number of Observations Read | 12 |
|---|---|
| Number of Observations Used | 12 |
| Analysis of Variance | |||||
|---|---|---|---|---|---|
| Source | DF | Sum of Squares | Mean Square | F Value | Pr > F |
| Model | 3 | 1.352004E12 | 4.506682E11 | 188.58 | <.0001 |
| Error | 8 | 19118420960 | 2389802620 | ||
| Corrected Total | 11 | 1.371123E12 | |||
| Root MSE | 48886 | R-Square | 0.9861 |
|---|---|---|---|
| Dependent Mean | 547083 | Adj R-Sq | 0.9808 |
| Coeff Var | 8.93568 |
| Parameter Estimates | |||||
|---|---|---|---|---|---|
| Variable | DF | Parameter Estimate | Standard Error | t Value | Pr > |t| |
| Intercept | 1 | -98376 | 55344 | -1.78 | 0.1134 |
| Travelers | 1 | 3.45438 | 0.39871 | 8.66 | <.0001 |
| Distance | 1 | 25282 | 6082.00392 | 4.16 | 0.0032 |
| Stops | 1 | -21581 | 5425.32108 | -3.98 | 0.0041 |
The REG Procedure
Model: MODEL1
Dependent Variable: Revenue
8.DATA VISUALIZATION – PROC SGPLOT
proc sgplot data=transport_routes;
scatter x=Travelers y=Revenue;
reg x=Travelers y=Revenue;
title "Revenue vs Travelers Across Transport Routes";
run;
OUTPUT:
9.APPEND OPERATION – ADDING NEW ROUTES
data new_routes;
length Route_Name $25 City $15;
format Start_Date date9.;
input Route_Name $ City $ Stops Distance Travelers Revenue Start_Date :date9.;
datalines;
Metro_Silver Noida 18 21.5 65000 280000 01JAN2022
Bus_CrossTown Indore 14 17.2 42000 160000 10FEB2023
;
run;
proc print data=new_routes;
run;
OUTPUT:
| Obs | Route_Name | City | Start_Date | Stops | Distance | Travelers | Revenue |
|---|---|---|---|---|---|---|---|
| 1 | Metro_Silver | Noida | 01JAN2022 | 18 | 21.5 | 65000 | 280000 |
| 2 | Bus_CrossTown | Indore | 10FEB2023 | 14 | 17.2 | 42000 | 160000 |
proc append base=transport_routes
data=new_routes force;
run;
proc print data=transport_routes;
run;
OUTPUT:
| Obs | Route_Name | City | Start_Date | Analysis_Date | Stops | Distance | Travelers | Revenue | Route_Age_Years |
|---|---|---|---|---|---|---|---|---|---|
| 1 | BlueLine_Metro | Hyderabad | 15MAR2015 | 01JAN2026 | 22 | 29.5 | 185000 | 750000 | 11 |
| 2 | RedLine_Metro | Delhi | 10JAN2012 | 01JAN2026 | 30 | 34.2 | 240000 | 980000 | 14 |
| 3 | GreenBus_Corridor | Pune | 01JUL2018 | 01JAN2026 | 18 | 21.0 | 95000 | 320000 | 8 |
| 4 | CityBus_Route12 | Chennai | 05MAY2016 | 01JAN2026 | 25 | 27.8 | 110000 | 410000 | 10 |
| 5 | Suburban_Train1 | Mumbai | 12DEC2008 | 01JAN2026 | 40 | 45.0 | 310000 | 1250000 | 18 |
| 6 | Airport_Express | Delhi | 20FEB2011 | 01JAN2026 | 10 | 22.0 | 70000 | 520000 | 15 |
| 7 | Metro_Orange | Jaipur | 01APR2019 | 01JAN2026 | 14 | 16.5 | 52000 | 210000 | 7 |
| 8 | BusRapid_A1 | Ahmedabad | 18AUG2017 | 01JAN2026 | 20 | 24.0 | 88000 | 360000 | 9 |
| 9 | RingRail_Outer | Kolkata | 25NOV2014 | 01JAN2026 | 35 | 39.0 | 145000 | 670000 | 12 |
| 10 | CityLink_Bus9 | Kochi | 11JAN2020 | 01JAN2026 | 15 | 19.2 | 47000 | 180000 | 6 |
| 11 | Metro_Purple | Bengaluru | 03SEP2013 | 01JAN2026 | 28 | 32.4 | 195000 | 820000 | 13 |
| 12 | HillRail_Shuttle | Shimla | 01JAN2021 | 01JAN2026 | 8 | 9.5 | 18000 | 95000 | 5 |
| 13 | Metro_Silver | Noida | 01JAN2022 | . | 18 | 21.5 | 65000 | 280000 | . |
| 14 | Bus_CrossTown | Indore | 10FEB2023 | . | 14 | 17.2 | 42000 | 160000 | . |
10.MERGE OPERATION – ADDING CITY ZONES
data city_zones;
input City $ Zone $;
datalines;
Hyderabad South
Delhi North
Mumbai West
Bengaluru South
;
run;
proc print data=city_zones;
run;
OUTPUT:
| Obs | City | Zone |
|---|---|---|
| 1 | Hyderaba | South |
| 2 | Delhi | North |
| 3 | Mumbai | West |
| 4 | Bengalur | South |
proc sort data=transport_routes; by City; run;
proc print data=transport_routes;
run;
OUTPUT:
| Obs | Route_Name | City | Start_Date | Analysis_Date | Stops | Distance | Travelers | Revenue | Route_Age_Years |
|---|---|---|---|---|---|---|---|---|---|
| 1 | BusRapid_A1 | Ahmedabad | 18AUG2017 | 01JAN2026 | 20 | 24.0 | 88000 | 360000 | 9 |
| 2 | Metro_Purple | Bengaluru | 03SEP2013 | 01JAN2026 | 28 | 32.4 | 195000 | 820000 | 13 |
| 3 | CityBus_Route12 | Chennai | 05MAY2016 | 01JAN2026 | 25 | 27.8 | 110000 | 410000 | 10 |
| 4 | RedLine_Metro | Delhi | 10JAN2012 | 01JAN2026 | 30 | 34.2 | 240000 | 980000 | 14 |
| 5 | Airport_Express | Delhi | 20FEB2011 | 01JAN2026 | 10 | 22.0 | 70000 | 520000 | 15 |
| 6 | BlueLine_Metro | Hyderabad | 15MAR2015 | 01JAN2026 | 22 | 29.5 | 185000 | 750000 | 11 |
| 7 | Bus_CrossTown | Indore | 10FEB2023 | . | 14 | 17.2 | 42000 | 160000 | . |
| 8 | Metro_Orange | Jaipur | 01APR2019 | 01JAN2026 | 14 | 16.5 | 52000 | 210000 | 7 |
| 9 | CityLink_Bus9 | Kochi | 11JAN2020 | 01JAN2026 | 15 | 19.2 | 47000 | 180000 | 6 |
| 10 | RingRail_Outer | Kolkata | 25NOV2014 | 01JAN2026 | 35 | 39.0 | 145000 | 670000 | 12 |
| 11 | Suburban_Train1 | Mumbai | 12DEC2008 | 01JAN2026 | 40 | 45.0 | 310000 | 1250000 | 18 |
| 12 | Metro_Silver | Noida | 01JAN2022 | . | 18 | 21.5 | 65000 | 280000 | . |
| 13 | GreenBus_Corridor | Pune | 01JUL2018 | 01JAN2026 | 18 | 21.0 | 95000 | 320000 | 8 |
| 14 | HillRail_Shuttle | Shimla | 01JAN2021 | 01JAN2026 | 8 | 9.5 | 18000 | 95000 | 5 |
proc sort data=city_zones; by City; run;
proc print data=city_zones;
run;
OUTPUT:
| Obs | City | Zone |
|---|---|---|
| 1 | Bengalur | South |
| 2 | Delhi | North |
| 3 | Hyderaba | South |
| 4 | Mumbai | West |
data routes_merged;
merge transport_routes(in=a) city_zones(in=b);
by City;
if a;
run;
proc print data=routes_merged;
run;
OUTPUT:
| Obs | Route_Name | City | Start_Date | Analysis_Date | Stops | Distance | Travelers | Revenue | Route_Age_Years | Zone |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | BusRapid_A1 | Ahmedabad | 18AUG2017 | 01JAN2026 | 20 | 24.0 | 88000 | 360000 | 9 | |
| 2 | Metro_Purple | Bengaluru | 03SEP2013 | 01JAN2026 | 28 | 32.4 | 195000 | 820000 | 13 | |
| 3 | CityBus_Route12 | Chennai | 05MAY2016 | 01JAN2026 | 25 | 27.8 | 110000 | 410000 | 10 | |
| 4 | RedLine_Metro | Delhi | 10JAN2012 | 01JAN2026 | 30 | 34.2 | 240000 | 980000 | 14 | North |
| 5 | Airport_Express | Delhi | 20FEB2011 | 01JAN2026 | 10 | 22.0 | 70000 | 520000 | 15 | North |
| 6 | BlueLine_Metro | Hyderabad | 15MAR2015 | 01JAN2026 | 22 | 29.5 | 185000 | 750000 | 11 | |
| 7 | Bus_CrossTown | Indore | 10FEB2023 | . | 14 | 17.2 | 42000 | 160000 | . | |
| 8 | Metro_Orange | Jaipur | 01APR2019 | 01JAN2026 | 14 | 16.5 | 52000 | 210000 | 7 | |
| 9 | CityLink_Bus9 | Kochi | 11JAN2020 | 01JAN2026 | 15 | 19.2 | 47000 | 180000 | 6 | |
| 10 | RingRail_Outer | Kolkata | 25NOV2014 | 01JAN2026 | 35 | 39.0 | 145000 | 670000 | 12 | |
| 11 | Suburban_Train1 | Mumbai | 12DEC2008 | 01JAN2026 | 40 | 45.0 | 310000 | 1250000 | 18 | West |
| 12 | Metro_Silver | Noida | 01JAN2022 | . | 18 | 21.5 | 65000 | 280000 | . | |
| 13 | GreenBus_Corridor | Pune | 01JUL2018 | 01JAN2026 | 18 | 21.0 | 95000 | 320000 | 8 | |
| 14 | HillRail_Shuttle | Shimla | 01JAN2021 | 01JAN2026 | 8 | 9.5 | 18000 | 95000 | 5 |
11.SET STATEMENT – STACKING DATA
data all_routes;
set transport_routes
routes_rated;
run;
proc print data=all_routes;
run;
OUTPUT:
| Obs | Route_Name | City | Start_Date | Analysis_Date | Stops | Distance | Travelers | Revenue | Route_Age_Years | Performance |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | BusRapid_A1 | Ahmedabad | 18AUG2017 | 01JAN2026 | 20 | 24.0 | 88000 | 360000 | 9 | |
| 2 | Metro_Purple | Bengaluru | 03SEP2013 | 01JAN2026 | 28 | 32.4 | 195000 | 820000 | 13 | |
| 3 | CityBus_Route12 | Chennai | 05MAY2016 | 01JAN2026 | 25 | 27.8 | 110000 | 410000 | 10 | |
| 4 | RedLine_Metro | Delhi | 10JAN2012 | 01JAN2026 | 30 | 34.2 | 240000 | 980000 | 14 | |
| 5 | Airport_Express | Delhi | 20FEB2011 | 01JAN2026 | 10 | 22.0 | 70000 | 520000 | 15 | |
| 6 | BlueLine_Metro | Hyderabad | 15MAR2015 | 01JAN2026 | 22 | 29.5 | 185000 | 750000 | 11 | |
| 7 | Bus_CrossTown | Indore | 10FEB2023 | . | 14 | 17.2 | 42000 | 160000 | . | |
| 8 | Metro_Orange | Jaipur | 01APR2019 | 01JAN2026 | 14 | 16.5 | 52000 | 210000 | 7 | |
| 9 | CityLink_Bus9 | Kochi | 11JAN2020 | 01JAN2026 | 15 | 19.2 | 47000 | 180000 | 6 | |
| 10 | RingRail_Outer | Kolkata | 25NOV2014 | 01JAN2026 | 35 | 39.0 | 145000 | 670000 | 12 | |
| 11 | Suburban_Train1 | Mumbai | 12DEC2008 | 01JAN2026 | 40 | 45.0 | 310000 | 1250000 | 18 | |
| 12 | Metro_Silver | Noida | 01JAN2022 | . | 18 | 21.5 | 65000 | 280000 | . | |
| 13 | GreenBus_Corridor | Pune | 01JUL2018 | 01JAN2026 | 18 | 21.0 | 95000 | 320000 | 8 | |
| 14 | HillRail_Shuttle | Shimla | 01JAN2021 | 01JAN2026 | 8 | 9.5 | 18000 | 95000 | 5 | |
| 15 | BlueLine_Metro | Hyderabad | 15MAR2015 | 01JAN2026 | 22 | 29.5 | 185000 | 750000 | 11 | Good |
| 16 | RedLine_Metro | Delhi | 10JAN2012 | 01JAN2026 | 30 | 34.2 | 240000 | 980000 | 14 | Excellent |
| 17 | GreenBus_Corridor | Pune | 01JUL2018 | 01JAN2026 | 18 | 21.0 | 95000 | 320000 | 8 | Average |
| 18 | CityBus_Route12 | Chennai | 05MAY2016 | 01JAN2026 | 25 | 27.8 | 110000 | 410000 | 10 | Good |
| 19 | Suburban_Train1 | Mumbai | 12DEC2008 | 01JAN2026 | 40 | 45.0 | 310000 | 1250000 | 18 | Excellent |
| 20 | Airport_Express | Delhi | 20FEB2011 | 01JAN2026 | 10 | 22.0 | 70000 | 520000 | 15 | Good |
| 21 | Metro_Orange | Jaipur | 01APR2019 | 01JAN2026 | 14 | 16.5 | 52000 | 210000 | 7 | Average |
| 22 | BusRapid_A1 | Ahmedabad | 18AUG2017 | 01JAN2026 | 20 | 24.0 | 88000 | 360000 | 9 | Average |
| 23 | RingRail_Outer | Kolkata | 25NOV2014 | 01JAN2026 | 35 | 39.0 | 145000 | 670000 | 12 | Good |
| 24 | CityLink_Bus9 | Kochi | 11JAN2020 | 01JAN2026 | 15 | 19.2 | 47000 | 180000 | 6 | Low |
| 25 | Metro_Purple | Bengaluru | 03SEP2013 | 01JAN2026 | 28 | 32.4 | 195000 | 820000 | 13 | Excellent |
| 26 | HillRail_Shuttle | Shimla | 01JAN2021 | 01JAN2026 | 8 | 9.5 | 18000 | 95000 | 5 | Low |
12.TRANSPOSE – ROUTE METRICS FORMAT CHANGE
proc transpose data=transport_routes out=routes_transposed;
var Travelers Revenue;
by Route_Name NotSorted;
run;
proc print data=routes_transposed;
run;
OUTPUT:
| Obs | Route_Name | _NAME_ | COL1 |
|---|---|---|---|
| 1 | BusRapid_A1 | Travelers | 88000 |
| 2 | BusRapid_A1 | Revenue | 360000 |
| 3 | Metro_Purple | Travelers | 195000 |
| 4 | Metro_Purple | Revenue | 820000 |
| 5 | CityBus_Route12 | Travelers | 110000 |
| 6 | CityBus_Route12 | Revenue | 410000 |
| 7 | RedLine_Metro | Travelers | 240000 |
| 8 | RedLine_Metro | Revenue | 980000 |
| 9 | Airport_Express | Travelers | 70000 |
| 10 | Airport_Express | Revenue | 520000 |
| 11 | BlueLine_Metro | Travelers | 185000 |
| 12 | BlueLine_Metro | Revenue | 750000 |
| 13 | Bus_CrossTown | Travelers | 42000 |
| 14 | Bus_CrossTown | Revenue | 160000 |
| 15 | Metro_Orange | Travelers | 52000 |
| 16 | Metro_Orange | Revenue | 210000 |
| 17 | CityLink_Bus9 | Travelers | 47000 |
| 18 | CityLink_Bus9 | Revenue | 180000 |
| 19 | RingRail_Outer | Travelers | 145000 |
| 20 | RingRail_Outer | Revenue | 670000 |
| 21 | Suburban_Train1 | Travelers | 310000 |
| 22 | Suburban_Train1 | Revenue | 1250000 |
| 23 | Metro_Silver | Travelers | 65000 |
| 24 | Metro_Silver | Revenue | 280000 |
| 25 | GreenBus_Corridor | Travelers | 95000 |
| 26 | GreenBus_Corridor | Revenue | 320000 |
| 27 | HillRail_Shuttle | Travelers | 18000 |
| 28 | HillRail_Shuttle | Revenue | 95000 |
13.PROC COPY – DATA MIGRATION
libname backup "/folders/myfolders/backup";
proc copy in=work out=backup;
select transport_routes;
run;
No comments:
Post a Comment