Sei sulla pagina 1di 36

/*EXCEL FILE*/

/*IN EXCEL WE CAN'T DO THE IMPORT USING PROGRAMMING


APPROACH*/
/*PROC STEP BLOCK*/

PROC IMPORT DATAFILE='C:\Documents and


Settings\Administrator\Desktop\SIMPLE.XLS'
OUT=GNANI.EXCEL
DBMS=EXCEL
REPLACE;
RUN;

/*IF THE DATA SECOND SHEET IN EXCEL FILE */

PROC IMPORT DATAFILE='C:\Documents and


Settings\Administrator\Desktop\EXCEL.XLS'
OUT=GNANI.SIMPLE
DBMS=EXCEL;
SHEET='SHEET2';
GETNAMES=YES;
RUN;

/*IF THE DATA IN MIDDLE OF THE SHEET*/

PROC IMPORT DATAFILE='C:\Documents and


Settings\Administrator\Desktop\RANGE.XLS'
OUT=GNANI.RANGE1
DBMS=EXCEL;
RANGE='SHEET1$F17:H18';
GETNAMES=NO;
RUN;

OPTIONS LS=154 PS=200;

/*WORD DOCUMENT*/

FILENAME SIMPLE DDE 'WINWORD|"C:\Documents and


Settings\Administrator\Desktop\SIMPLE.DOC"!JAYALALITHA';
DATA NG;
INFILE SIMPLE FIRSTOBS=2;
INPUT ID NAME $ AGE ;
RUN;
PROC PRINT;
RUN;

/* TO EXPORT USING NULL VARIABLE*/


/*EXPORTING*/

DATA _NULL_;
FILE 'C:\ASH.TXT';
PUT @25 'THIS IS SIMPLE DATA';
PUT @10 'ID' @20 'NAME' @40 'AGE';
RUN;
DATA _NULL_;
SET NG;
FILE 'C:\ASH.TXT' MOD;
PUT @10 ID @20 NAME @40 AGE;
RUN;
/*TO EXPORT USING PROC BLOCK*/
/*TEXT DOCUMENT*/

PROC EXPORT OUTFILE='C:\EXP.TXT'


DATA=SASHELP.CLASS
DBMS=DLM;
RUN;
/*EXCEL FILE*/

PROC EXPORT OUTFILE='C:\EXPO.XLS'


DATA=SASHELP.PROFIT
DBMS=EXCEL;
RUN;
/*TO REPORT COMPANIES INFO WHO HAS BEEN
ESTABLISHED IN BANG AND INVEST>30000000 AND
YEAR 1997*/
PROC SQL;
SELECT * FROM SASHELP.PROFIT
WHERE AREA='BAN' AND INVEST>300000
AND YEAR='1997';
QUIT;
/*USED OR OPERATOR*/
PROC SQL;
SELECT * FROM SASHELP.PROFIT
WHERE AREA EQ 'BAN' OR INVEST GT 300000
OR YEAR EQ '1997';
QUIT;
/*USED BETWEEN OPERATOR**/
PROC SQL;
SELECT * FROM SASHELP.PROFIT
WHERE INVEST BETWEEN 30000000 AND 40000000;
QUIT;
/*IN OPERATOR*/
PROC SQL;
SELECT * FROM SASHELP.PROFIT
WHERE COMPANY IN('ACENTURE','TCS');
QUIT;
/*NOTE:ALL OPERATOR CAN USED IN
PROC SQL PROCEDURE.*/
/*ORDER BY CLAUSE*(BEDEFAULT ASCENDING)*/
PROC SQL;
SELECT * FROM SASHELP.PROFIT ORDER BY COMPANY;
QUIT;
/*TO ORDER DESCENDING ORDER*/
PROC SQL;
SELECT * FROM SASHELP.PROFIT ORDER BY COMPANY DESC;
QUIT;
/*SORTING BASED ON THE POSITION AND
TO STORE NEW TABLE*/
PROC SQL;
CREATE TABLE NEW_TABLE AS
SELECT * FROM SASHELP.PROFIT ORDER BY COMPANY;
QUIT;
/*GROUP BY COMPANY*/
PROC SQL;
CREATE TABLE NEW_GROUP AS
SELECT * FROM SASHELP.PROFIT GROUP BY COMPANY;
QUIT;
/*HAVING CLAUSE*/
PROC SQL;
CREATE TABLE NEW_GROUP1 AS
SELECT * FROM SASHELP.PROFIT GROUP BY COMPANY
HAVING INVEST>40000000;
QUIT;
/*TO USE MULTIPLE CLAUSES IN ONE SELECT
STATEMENT*/
quit;
PROC SQL;
CREATE TABLE MULT_CLA AS
SELECT * FROM SASHELP.PROFIT
WHERE YEAR IN('1996') AND COMPANY EQ 'ACENTURE'
ORDER BY AREA;
QUIT;
/*AGGREGATE FUNCTION*/
/* TO REPORT TOTAL NO OF PATIENS HAD TAKEN TRT
IN DIFFERENT CINTERS*/
/* EG FOR COLUMN WISE*/
proc sql;
select sum(age) as total_sum from sashelp.class;
quit;
/*FOR ROW WISE*/
proc sql;
select *,sum(age,height) as total_sum from sashelp.class;
quit;
/*TO REPORT MAX NO OF PATIENTS HAD TAKEN TRT IN
DIFFERENT TRTMTS IN CENTER*/
/*FOR COLUMN WISE*/
proc sql;
select *,max(age) as total_sum from sashelp.class;
quit;
/*FOR ROW WISE*/
proc sql;
select *,max(age,weight) as total_sum from sashelp.class;
quit;
/*TO REPORT MIN NO*/
/*FOR COLUMN WISE*/
proc sql;
select *,min(age) as total_sum from sashelp.class;
quit;
/*FOR ROW WISE*/
proc sql;
select *,min(age,WEIGHT) as total_sum from sashelp.class;
quit;
/*STD(STANDARD DEVIATION)*/
proc sql;
select *,STD(age) as total_sum from sashelp.class;
quit;
proc sql;
select *,STD(HEIGHT) as total_sum from sashelp.class;
quit;
proc sql;
select *,STD(WEIGHT) as total_sum from sashelp.class;
quit;
proc sql;
select *,STD(age,HEIGHT) as total_sum from sashelp.class;
quit;
proc sql;
select *,STD(WEIGHT,HEIGHT) as total_sum from sashelp.class;
quit;
proc sql;
select *,STDERR(AGE) as total_sum from sashelp.class;
quit;
proc sql;
select *,STDERR(AGE,HEIGHT) as total_sum from sashelp.class;
quit;
proc sql;
select *,MEDIAN(AGE) as total_sum from sashelp.class;
quit;

proc sql;
select *,MEDIAN(AGE,HEIGHT) as total_sum from sashelp.class;
quit;

proc sql;
select *,MEDIAN(WEIGHT,HEIGHT) as total_sum from sashelp.class;
quit;

proc sql;
select *,LENGTH(NAME) as total_sum from sashelp.class;
quit;
proc sql;
select *,INDEX(NAME,'a') as total_sum from sashelp.class;
quit;
/*PASS THROUGH FACILITY*/
/*CREATE THE TABLE IN OTHER ENVIRONMENT
USING SAS ENVIRONMENT*/
PROC SQL;
CONNECT TO EXCEL(PATH='C:\SALES.XLS');
EXECUTE (CREATE TABLE SALES_PROD5
(ID INT,
PROD CHAR ,
LOCATION CHAR,
PROFIT CHAR)) BY EXCEL;
EXECUTE(INSERT INTO SALES_PROD5 VALUES
(1021,'DOMESTIC','INDIA',45000)) BY EXCEL;
DISCONNECT FROM EXCEL;
QUIT;
/*EXCEL FILE*/
/*CONNECT INTO THE CREATED EXCEL FILE FROM SAS*/
PROC SQL;
CONNECT TO EXCEL(PATH='C:\GNANI\SALES.XLS');
EXECUTE (CREATE TABLE SALES_PROD5
(ID INT,
PROD CHAR ,
LOCATION CHAR,
PROFIT CHAR)) BY EXCEL;
EXECUTE(INSERT INTO SALES_PROD5 VALUES
(1021,'DOMESTIC','INDIA',45000)) BY EXCEL;
DISCONNECT FROM EXCEL;
QUIT;
/*UPDATE THE DATAVALUE INTO
THE EXISTED TABLE USING SAS ENVIRONMENT*/
PROC SQL;
CONNECT TO EXCEL (PATH='D:\ANNA.XLS');
EXECUTE(UPDATE GD_ANNA SET AGE=AGE+1 ) BY EXCEL;
DISCONNECT FROM EXCEL;
QUIT;
PROC SQL;
CONNECT TO EXCEL(PATH='C:\MAA.XLS');
EXECUTE(UPDATE EMP_TABLE SET AGE=AGE+2 WHERE NAME='JEEVAN')BY EXCEL;
DISCONNECT FROM EXCEL;
QUIT;
PROC SQL;
CONNECT TO EXCEL(PATH='C:\MAA.XLS');
EXECUTE(UPDATE EMP_TABLE SET AGE=AGE+3 WHERE NAME IN ('KIRAN','JEGEN')BY
EXCEL;
DISCONNECT FROM EXCEL;
QUIT;
/*IMPORTING THE DATA AND STORING INTO NEW TALE*/
PROC SQL;
CONNECT TO EXCEL (PATH='C:\MAA.XLS');
CREATE TABLE NEW_EMP AS
SELECT * FROM CONNECTION TO EXCEL(SELECT * FROM EMP_TABLE);
SELECT * FROM NEW_EMP;
QUIT;
/*TO INSERT FOR EXISTED TABLE */
PROC SQL;
CONNECT TO EXCEL(PATH='C:\MAA.XLS');
EXECUTE(INSERT INTO EMP_TABLE VALUES(214,'A',40)) BY EXCEL;
DISCONNECT FROM EXCEL;
QUIT;
/*ANALYSIS*/
/*BASE SAS PROCEDURE*/
/*FORMAT PROCEDURE*/
/*EG FOR CREATE USERDEFINED FORMAT FOR
CONVERTING TO CHAR*/
PROC FORMAT;
VALUE GEN 1='MALE'
2='FEMALE'
3='OTHERS'
;
RUN;
/*TO APPLY THE USERDEFINED
FORMAT TO THE GENDER VARIABLES*/
DATA SAMPLE;
INPUT EID ENAME $ GENDER;
FORMAT GENDER GEN.;
DATALINES;
111 A 1
222 B 2
333 C 1
444 D 2
555 E 3
666 F 2
777 G 1
888 H 1
;
PROC PRINT;
RUN;
/*TO CREATE USERDEFINED INFORMAT FOR
CONVERTING NUMERIC TO NUMERIC*/
PROC FORMAT;
INVALUE GEO 1=5234
2=4789
3=3984
;
RUN;
DATA SAMPLE;
INPUT EID ENAME $ GENDER;
INFORMAT GENDER GEO.;
DATALINES;
111 A 1
222 B 2
333 C 1
444 D 2
555 E 3
666 F 2
777 G 1
888 H 1
;
PROC PRINT;
RUN;
/*TO CONVERT CHARACTER TO CHARACTER TO DEFINE THE
USERDEFINED INFORMAT*/
PROC FORMAT;
INVALUE $ ENM 'A'='JOHN'
'B'='KIRAN'
'C'='RAM'
'D'='UMA'
'E'='GIRI'
;
RUN;
DATA STDT;
INPUT EID ENAME : $ ENM. GENDER;
DATALINES;
111 A 1
222 B 2
333 C 1
444 D 2
555 E 3
666 F 2
777 G 1
888 H 1
;
PROC PRINT;
RUN;
/*FOR EXTERNAL FILE PURPOSE TO APPLY THE
INFORMAT AND FORMAT USING FUNCTIONS*/
PROC FORMAT;
VALUE GED 1='MALE'
2='FEMALE'
;
VALUE $ CR 'W'='WHITE'
'B'='BLACK';
RUN;
DATA NW3;
SET CLIN;
FORMAT COLOR CR. GENDER GED.;
RUN;
PROC PRINT;
RUN;
/*FOR EXTERNAL FILE PURPOSE TO APPLY THE
INFORMAT AND FORMAT USING FUNCTIONS*/
PROC FORMAT;
VALUE GED 1='MALE'
2='FEMALE'
;
VALUE $ CR 'W'='WHITE'
'B'='BLACK';
RUN;
DATA NW4;
SET CLIN;
GEND=PUT(GENDER,GED.);
COL=PUT(COLOR,CR.);
RUN;
PROC PRINT;
RUN;
/*TO CONVERTS THE ANY VARIABLE DATA
VALUE INTO CHARACTER VARIABLE OR
NUMERIC VARIANLE*/
DATA CL3(DROP=GENDER);
SET CLIN(RENAME=(GENDER=GENDER3));
IF GENDER3=1 THEN GENDER='MALE';
IF GENDER3=2 THEN GENDER='FEMALE';
RUN;
PROC PRINT;
RUN;
/*EG FOR INPUT FUNCTION*/
PROC FORMAT LIBRARY=SASUSER;
INVALUE $ RC 'A'=1
'B'=2
'C'=3
;
RUN;
OPTIONS FMTSEARCH=(SASUSER);
DATA STDT;
INPUT SID SNAME $ GRD $ TEST1 TEST2;
GRD=INPUT(GRD,$GD.);
DATALINES;
111 A a 36 67
222 B b 45 56
333 C c 43 45
232 D d 45 56
;
PROC PRINT;
RUN;
/*EG FOR INPUT FUNCTION*/
PROC FORMAT;
INVALUE $ RC 'AS'=1
'AF'=2
'OT'=3
;
RUN;
DATA PAT;
SET CLIN;
NEW_RACE=INPUT(RACE,$RC.);
RUN;
PROC PRINT;
RUN;
/*BOTH FUNCTION ARE USED IN FORMAT PROCEDURE*/
PROC FORMAT;
VALUE GEO 1=MALE
2=FEMALE
;
INVALUE CO 'W'=1
'B'=2
;
RUN;
DATA P;
SET PATI;
GEND=PUT(GENDER,GEO.);
COLO=INPUT(COLOR,CO.);
RUN;
PROC PRINT;
RUN;
/*PICTURE STATEMENT*/
/*EG FOR SYNTAX*/
PROC FORMAT;
PICTURE RES LOW-35='FAIL'
35-60='SECOND'
60-70='THIRD'
70-HIGH='DIST'
;
RUN;
DATA STDT;
INPUT SRN SNAME $ AGE MARK;
FORMAT MARK RES.;
DATALINES;
222 A 23 67
432 B 35 78
746 C 23 90
743 D 21 20
472 E 19 45
;
PROC PRINT;
RUN;
PROC FORMAT;
VALUE PA 120-<80='NORMAL'
90-<70='LOW'
110-<75='MEDIUM'
140-<90='HIGH'
;
RUN;
DATA PATI3;
INPUT PID PNAME $ DBPSBP CENTER;
FORMAT DBPSBP PA.;
DATALINES;
352 SIRU 130 APPOLO
342 VIRU 90 GH
235 KIRU 70 APPOLO
374 NAREN 140 GH
;
PROC PRINT;
RUN;
/*PRINTTO PROCEDURE*/
/*EG FOR SENDING THE LOG WINDOW FOR CLIENT
DESIRED LOCATION*/
PROC PRINT DATA=CLA;
RUN;
PROC PRINTTO FILE='C:\MAA.TXT';
RUN;
PROC PRINT DATA=CLA;
RUN;
PROC PRINTTO FILE='C:\MA.XLS';
RUN;
DATA EMP;
INPUT EID $ ENAME $ SALARY COMPANY $;
DATALINES;
WI234 MENAKA 40000 WIPRO
SY344 LAVANYA 35000 SYNTEL
;
PROC PRINT DATA=EMP;
RUN;
PROC PRINTTO LOG='C:\LAT.XLS';
RUN;
/*WE ARE EXPORTING IN THE FORM OF
RTF (RICH TEXT FORMAT*/
DATA DAT1;
SET SASHELP.CLASS;
RUN;
PROC PRINT;
RUN;
PROC PRINTTO FILE='C:\GNANI.RTF';
RUN;
PROC PRINTTO LOG='C:\GNAN.RTF';
RUN;
/*PDF(PORTABLE DOCUMENT FORMAT*/
PROC PRINTTO FILE='C:\VIJAY.PDF';
RUN;
PROC PRITTO LOG='C:\VIJA.PDF';
RUN;
/*HTML (HYPERTEXT MARKUP LANGUAGE)*/
PROC PRINTTO FILE='C:\LAK';
RUN;
PROC PRINTTO LOG='C:\LAK';
RUN;
/*SAS-ANALYSIS*/

DATA STUD_PERF;
INPUT SRN $ GENDER $ PHY CHEM MATHS LOCATION $
INST $ NOS;
DATALINES;
001 M 66 55 18 HYD A 67
003 F 45 68 87 CHEN B 78
005 F 56 87 40 BAN A 56
004 M 90 50 40 CUL A 76
009 F 76 78 56 HYD B 87
007 M 67 40 57 CHEN C 56
006 F 48 29 57 BAN A 65
002 M 65 34 90 CHEN C 65
569 F 87 57 47 BAN A 54
758 M 67 56 45 CHEN B 67
547 F 67 58 98 BAN C 87
649 F 78 38 58 CHEN B 54
587 M 78 45 57 BAN B 56
533 F 78 56 45 HYD C 55
785 M 45 89 67 CUL B 35
875 F 34 32 30 HYD B 56
587 M 45 49 70 CHEN B 44
578 F 67 45 89 BAN C 67
;
RUN;
PROC PRINT;
RUN;

/*BY DEFAULT REPORT USING MEANS STATEMENT*/

PROC MEANS DATA=STUD_PERF;


RUN;

/*TO REPORT ONE NUMERIC VAR ANALYSIS WITH


CLASSIFICATION VAR*/

PROC MEANS DATA=STUD_PERF;


VAR MATHS;
CLASS GENDER;
RUN;
OPTIONS LS=120;
/*TO REPORT TWO OR MORE VARIBLE ANALYSIS WITH
CLASS VAR*/

PROC MEANS DATA=STUD_PERF;


VAR MATHS PHY CHEM;
CLASS GENDER;
RUN;

/*MULTIPLE CLASS VAR WITH MULTIPLE NUMERIC


VAR*/

PROC MEANS DATA=STUD_PERF;


VAR MATHS PHY CHEM;
CLASS GENDER INST;
RUN;

/*TO APPLY THE MEANS STATEMENT OPTIONS*/

PROC MEANS DATA=STUD_PERF RANGE N


CV SKEWNESS;
RUN;

/*TO APPLY STMTS AND OPTIONS IN BOTH IN


ONE PROGRAM*/
PROC MEANS DATA=STUD_PERF MEAN MIN MAX RANGE N
CV SKEWNESS;
VAR PHY;
CLASS LOCATION;
RUN;
OPTIONS LS=150;
/*TO REPORT THE STATISTICAL MEASUREMENTS
BASED ON THE CLASSIFICATION*/
/*TO GENERATE THE SEPARATE ANALYSIS BASED ON
THE CONDITION*/

PROC SORT DATA=STUD_PERF;


BY GENDER;
RUN;
PROC MEANS DATA=STUD_PERF STDDEV RANGE SKEWNESS KURTOSIS
Q1 Q3 P10 P50;
VAR PHY CHEM MATHS;
CLASS GENDER;
BY GENDER;
RUN;

/*TO GENERATE THE REPORT BASED ON THE CONDITION


AND SEPARATED ANALYSIS*/

PROC SORT DATA=STUD_PERF;


BY GENDER;
RUN;
PROC MEANS DATA=STUD_PER ;
VAR PHY CHEM MATHS;
CLASS GENDER;
BY GENDER;
WHERE PHY GE 60;
RUN;

/*TO SAVE THE OUTPUT IN ONE DATASET*/

PROC MEANS DATA=STUD_PERF;


OUTPUT OUT=STAT_MEASURE;
RUN;

/*TO GENERATE STAT MESUREMENTS IN ONLY DATASET


NOT IN OUTPUT*/

PROC MEANS DATA=STUD_PERF NOPRINT;


OUTPUT OUT=STAT_MEASURE1;
RUN;

/*TO GENERATE STAT MEASUREMENTS IN ONLY


DATASET NOT IN OUTPUT*/

PROC MEANS DATA=STUD_PERF;


OUTPUT OUT=STATS_MEASURE3
MEAN=MIN_PER
RANGE=RANGE_PER
P10=PERC_PER;
RUN;
/*TO INCREASE THE ANALYSIS TYPES IN DATASET
THEN WE APPLY VAR AND CLASS STMT IN PROC
MEANS PROCEDURE*/

PROC MEANS DATA=STUD_PERF NOPRINT;


VAR PHY CHEM MATHS;
CLASS GENDER;
OUTPUT OUT=STATS_MEA5
MEAN=MEAN_PER
RANGE=RANGE_PER
P10=PERC_PER;
RUN;

/*TO INCREASE THE ANALYSIS TYPES IN DATASET


THEN WE APPLY VAR AND CLASS STMT IN PROC
MEANS PROCEDURE*/

PROC MEANS DATA=STUD_PERF NOPRINT;


VAR PHY CHEM MATHS;
CLASS GENDER INST;
OUTPUT OUT=STATS_MEA9
MIN=MEAN_PER
MAX=MAX_PER
MEAN=MEAN_PER;
RUN;

/*NWAY OPTION*/

PROC MEANS DATA=STUD_PERF NOPRINT NWAY;


VAR PHY CHEM MATHS;
CLASS GENDER INST;
OUTPUT OUT=STATS_MEA13
MIN=MIN_PER
MAX=MAX_PER
MEAN=MEAN_PER
STDERR=SE_PER;
RUN;

/*WE HAVE TO TAKE ONE DATASET FROM OUR


SASHELP LIBRARY*/
/*BY DEFAULT REPORT USING MEANS STATEMENT*/

PROC MEANS DATA=SASHELP.PROFIT;


RUN;

/*TO REPORT ONE NUMERIC VAR ANALYSIS WITH


CLASSIFICATION VAR*/

PROC MEANS DATA=SASHELP.PROFIT;


VAR INVEST;
CLASS COMPANY;
RUN;

/*TO REPORT TWO OR MORE VARIBLE ANALYSIS WITH


CLASS VAR*/
PROC MEANS DATA=SASHELP.PROFIT;
VAR INVEST ACT_PROFIT EST_PROFIT;
CLASS COMPANY;
RUN;

/*MULTIPLE CLASS VAR WITH MULTIPLE NUMERIC


VAR*/

PROC MEANS DATA=SASHELP.PROFIT;


VAR INVEST ACT_PROFIT EST_PROFIT;
CLASS COMPANY AREA;
RUN;

/*TO APPLY THE MEANS STATEMENT OPTIONS*/

PROC MEANS DATA=SASHELP.PROFIT


MEAN MIN MAX RANGE N
CV SKEWNESS;
RUN;

/*TO APPLY STMTS AND OPTIONS IN BOTH IN


ONE PROGRAM*/

PROC MEANS DATA=SASHELP.PROFIT


MEAN MIN MAX RANGE N
CV SKEWNESS;
VAR INVEST;
CLASS COMPANY;
RUN;

/*TO REPORT THE STATISTICAL MEASUREMENTS


BASED ON THE CLASSIFICATION*/
/*TO GENERATE THE SEPARATE ANALYSIS BASED ON
THE CONDITION*/

PROC SORT DATA=SASHELP.PROFIT;


BY COMPANY;
RUN;
PROC MEANS DATA=SASHELP.PROFIT;
VAR INVEST ACT_PROFIT EST_PROFIT;
CLASS COMPANY;
BY COMPANY;
RUN;

/*TO GENERATE THE REPORT BASED ON THE CONDITION


AND SEPARATED ANALYSIS*/

PROC SORT DATA=SASHELP.PROFIT;


BY COMPANY;
RUN;
PROC MEANS DATA=SASHELP.PROFIT;
VAR INVEST ACT_PROFIT EST_PROFIT;
CLASS COMPANY;
BY COMPANY;
WHERE INVEST >40000000;
RUN;
/*TO SAVE THE OUTPUT IN ONE DATASET*/

PROC MEANS DATA=SASHELP.PROFIT;


OUTPUT OUT=STAT_PROFIT;
RUN;

/*TO GENERATE STAT MESUREMENTS IN ONLY DATASET


NOT IN OUTPUT*/

PROC MEANS DATA=SASHELP.PROFIT NOPRINT;


OUTPUT OUT=STAT_PROFIT1;
RUN;

/*TO GENERATE STAT MEASUREMENTS IN ONLY


DATASET NOT IN OUTPUT*/

PROC MEANS DATA=SASHELP.PROFIT ;


OUTPUT OUT=STATS_PROFIT2
MEAN=MEAN_PRO
RANGE=RANGE_PRO
P10=PERC_PRO;
RUN;

/*TO INCREASE THE ANALYSIS TYPES IN DATASET


THEN WE APPLY VAR AND CLASS STMT IN PROC
MEANS PROCEDURE*/

PROC MEANS DATA=SASHELP.PROFIT NOPRINT;


VAR INVEST ACT_PROFIT EST_PROFIT;
CLASS AREA;
OUTPUT OUT=STATS_PR5
MEAN=MEAN_PR
RANGE=RANGE_PR
P10=PERC_PR;
RUN;

/*TO INCREASE THE ANALYSIS TYPES IN DATASET


THEN WE APPLY VAR AND CLASS STMT IN PROC
MEANS PROCEDURE*/

PROC MEANS DATA=SASHELP.PROFIT NOPRINT;


VAR INVEST ACT_PROFIT;
CLASS COMPANY AREA;
OUTPUT OUT=STATS_PR7
MIN=MIN_PR
MAX=MAX_PR
MEAN=MEAN_PR;
RUN;
/*NWAY OPTION*/

PROC MEANS DATA=SASHELP.PROFIT PRINT NWAY;


VAR INVEST ACT_PROFIT;
CLASS COMPANY AREA;
OUTPUT OUT=STATS_PR8
MIN=MIN_PR
MAX=MAX_PR
MEAN=MEAN_PR;
RUN;

/*FREQUENCY PROCEDURE*/

DATA SAMPLE;
INPUT RESULT $ @@;
DATALINES;
Y Y Y N N Y N Y N Y N N Y
Y N N Y N Y N N Y Y N Y N
N Y N N Y N Y N N Y N Y N Y
N Y N Y Y N Y N N Y Y Y N Y N
;
PROC FREQ DATA=SAMPLE;
RUN;

/*TO REPORT THE ONE VARIABLE ANALYSIS WITH FREQ


PROCEDURE*/

PROC FREQ DATA=STUD_PER;


TABLES PHY;
RUN;

/*TO REPORT THE CHARACTOR VARIABLE ANALYSIS


WITH FREQ PROCEDURE*/

PROC FREQ DATA=STUD_PERF;


TABLES GENDER;
RUN;

/*ANALYSIS OF TWO NUM AND MORE CHAR VAR


USING TWO TABLE STMT PROC FREQ PROCEDURE*/

PROC FREQ DATA=STUD_PERF;


TABLES PHY CHEM;
TABLES GENDER LOCATION;
RUN;

/*ALL WILLBE IN TABLE STATEMENT*/

PROC FREQ DATA=STUD_PERF;


TABLES PHY CHEM GENDER LOCATION;
RUN;

/*TO SAVE THE FREQ OUTPUT IN ONE DATASET*/

PROC FREQ DATA=STUD_PERF;


TABLES PHY CHEM GENDER LOCATION/OUT=LO;
RUN;

/*CROSS TABULATION ANALYSIS USING FREQ PROC*/

PROC FREQ DATA=STUD_PERF;


TABLES GENDER*LOCATION;
RUN;
OPTIONS PS=300;
/*TO DO THE CROSS TABULATION ANALYSIS WITH SEPARATED
GROUPS*/
PROC SORT DATA=STUD_PERF;
BY GENDER;
RUN;
PROC FREQ DATA=STUD_PERF;
TABLES LOCATION*GENDER;
BY GENDER;
RUN;

/*MISSING OPTION IN FREQ PROCEDURE*/

PROC FREQ DATA=STUD_PERF;


TABLES GENDER/MISSING;
RUN;

/*CROSS TABULATION ANALYSIS WITH MULTIPLE


VARIABLES*/

PROC FREQ DATA=STUD_PERF;


TABLES SRN*LOCATION*GENDER;
RUN;

/*CROSS TAB ANALYSIS WITH COMBINATION*/

PROC FREQ DATA=STUD_PERF;


TABLES SRN*(GENDER LOCATION);
RUN;

/*NO ROW NOCOL OPTIONS IN FREQ PROCEDURE*/

PROC FREQ DATA=STUD_PERF;


TABLES SRN*(GENDER LOCATION)/NOROW NOCOL;
RUN;

/*CROSS TABULATION ANALYSIS WITH MULTIPLE


COMBINATION*/

PROC FREQ DATA=STUD_PERF;


TABLES (SRN LOCATION)*(INST GENDER);
RUN;

/*TO GENERATE TJE CHI-SQUARE STAT FOR RECQUIRED VARIBLE


IN FREQ PROCEDURE*/

PROC FREQ DATA=STUD_PERF;


TABLES PHY/CHISQ;
RUN;

/*WEIGHT STMT IN FREQUENCY PROCEDURE*/

PROC FREQ DATA=STUD_PERF;


TABLES SRN PHY;
WEIGHT PHY;
RUN;
/*WE HAVE TO TAKE ONE DATASET FROM OUR LIBRARY*/
/*TO REPORT THE ONE VARIABLE ANALYSIS WITH FREQ
PROCEDURE*/
PROC FREQ DATA=SASHELP.PROFIT;
TABLES INVEST;
RUN;

/*TO REPORT THE CHARACTOR VARIABLE ANALYSIS


WITH FREQ PROCEDURE*/

PROC FREQ DATA=SASHELP.PROFIT;


TABLES AREA;
RUN;

/*ANALYSIS OF TWO NUM AND MORE CHAR VAR


USING TWO TABLE STMT PROC FREQ PROCEDURE*/

PROC FREQ DATA=SASHELP.PROFIT;


TABLES ACT_PROFIT EST_PROFIT;
TABLES AREA COMPANY;
RUN;

/*ALL WILLBE IN TABLE STATEMENT*/

PROC FREQ DATA=SASHELP.PROFIT;


TABLES ACT_PROFIT EST_PROFIT AREA COMPANY;
RUN;

/*TO SAVE THE FREQ OUTPUT IN ONE DATASET*/

PROC FREQ DATA=SASHELP.PROFIT;


TABLES ACT_PROFIT EST_PROFIT AREA COMPANY/OUT=COM;
RUN;

/*CROSS TABULATION ANALYSIS USING FREQ PROC*/

PROC FREQ DATA=SASHELP.PROFIT;


TABLES AREA*COMPANY;
RUN;

/*TO DO THE CROSS TABULATION ANALYSIS WITH SEPARATED


GROUPS*/
PROC SORT DATA=SASHELP.PROFIT;
BY COMPANY;
RUN;
PROC FREQ DATA=SASHELP.PROFIT;
TABLES AREA*COMPANY;
BY COMPANY;
RUN;

/*CROSS TABULATION ANALYSIS WITH MULTIPLE


VARIABLES*/

PROC FREQ DATA=SASHELP.PROFIT;


TABLES INVEST*AREA*COMPANY;
RUN;

/*CROSS TAB ANALYSIS WITH COMBIANTION*/


PROC FREQ DATA=SASHELP.PROFIT;
TABLES INVEST*(AREA COMPANY);
RUN;

/*NO ROW NOCOL OPTIONS IN FREQ PROCEDURE*/

PROC FREQ DATA=SASHELP.PROFIT;


TABLES INVEST*(AREA COMPANY)/NOROW NOCOL;
RUN;
OPTIONS PS=300;
/*CROSS TABULATION ANALYSIS WITH MULTIPLE
COMBINATION*/

PROC FREQ DATA=SASHELP.PROFIT;


TABLES (AREA INVEST)*(COMPANY ACT_PROFIT);
RUN;

/*TO GENERATE TJE CHI-SQUARE STAT FOR RECQUIRED VARIBLE


IN FREQ PROCEDURE*/

PROC FREQ DATA=SASHELP.PROFIT;


TABLES COMPANY/CHISQ;
RUN;

/*WEIGHT STMT IN FREQUENCY PROCEDURE*/

PROC FREQ DATA=SASHELP.PROFIT;


TABLES AREA INVEST;
WEIGHT INVEST;
RUN;

/*TABULATE PROCEDURE*/

/*TO REPORT THE TOTAL NO OF STUDENTS IN VARIOUS


INSTS FROM THE ABOVE TABLE*/

PROC TABULATE DATA=STUD_PERF;


VAR NOS;
TABLE NOS;
RUN;

/*FREQUENCY ANALYSIS*/

PROC TABULATE DATA=STUD_PERF;


CLASS NOS;
TABLE NOS;
RUN;

/*FREEQUENCY ANALYSIS(CHAR VALUE IN CLASS


STMT*/

PROC TABULATE DATA=STUD_PERF;


CLASS GENDER;
TABLE GENDER;
RUN;

/*SEPARATED ANALYSIS USING BY STMT IN TABUALAE


PROCEDURE*/

PROC SORT DATA=STUD_PERF;


BY LOCATION;
RUN;
PROC TABULATE DATA=STUD_PERF;
BY LOCATION;
CLASS LOCATION;
TABLE LOCATION;
RUN;

/*TO REPORT THE TOTAL NO OF STUDENTS INTO


DIFFERENT LOCATION*/

PROC SORT DATA=STUD_PERF;


BY LOCATION;
RUN;
PROC TABULATE DATA=STUD_PERF;
BY LOCATION;
VAR NOS;
CLASS LOCATION;
TABLE LOCATION NOS;
RUN;

/*TO REPORT THE TOTAL NO OF MARKS, TOT NO STUD,


WITH THE SPECIFIED CLASSIFICATION*/

PROC SORT DATA=STUD_PERF;


BY GENDER;
RUN;
PROC TABULATE DATA=STUD_PERF;
BY GENDER;
VAR NOS PHY MATHS;
CLASS GENDER;
TABLE GENDER NOS PHY MATHS;
RUN;

/*TO REPORT THE TOT NO OF STUD TOT NO OF MARKS


WITH MULTIPLE TYPES OF CLASS VARIBLES*/

PROC SORT DATA=STUD_PERF;


BY GENDER LOCATION;
RUN;
PROC TABULATE DATA=STUD_PERF;
BY GENDER LOCATION;
VAR NOS PHY MATHS;
CLASS GENDER LOCATION;
TABLE GENDER NOS PHY MATHS LOCATION;
RUN;

/*DIMENSION PROCEDURE IN TABULATE PROCEDURE*/

PROC TABULATE DATA=STUD_PERF;


CLASS GENDER LOCATION;
TABLE GENDER,LOCATION/BOX='REP BETWEEN GEND
AND LOC';
RUN;
/*MULTIPLE DIMENSIONS*/

PROC TABULATE DATA=STUD_PERF;


VAR NOS;
CLASS GENDER LOCATION;
TABLE NOS,GENDER,LOCATION/BOX='REP BERWEEN THE NOS
GEND AND LOC';
RUN;

/*TO GENERATE THE DIMENSION WITH CROSS


TABULATION*/
/*TO REPORT TOT QTY FROM D/F LOCATION AND
D/F GENDER*/

PROC TABULATE DATA=STUD_PERF;


VAR NOS;
CLASS GENDER LOCATION;
TABLE GENDER*LOCATION,NOS;
RUN;

/*TO REPORT THE MULTIPLE VARIABLE CROSS


TABULATION WITH DIMENSION REPORT*/

PROC TABULATE DATA=STUD_PERF;


VAR NOS;
CLASS GENDER LOCATION INST;
TABLE GENDER*LOCATION*INST,(NOS ALL);
RUN;

/*FORMAT OPTION IN TABULATE PROCEDURE*/

PROC TABULATE DATA=STUD_PERF FORMAT=15.;


VAR NOS;
CLASS GENDER LOCATION INST;
TABLE GENDER*LOCATION*INST,(NOS ALL);
RUN;

/*OUT OPTION IN TABULATE PROC*/

PROC TABULATE DATA=STUD_PERF OUT=NEW_REP ;


VAR NOS;
CLASS GENDER LOCATION INST;
TABLE INST*GENDER*LOCATION,(NOS ALL);
RUN;

/*TO GENERATE THE DESCRIPTIVE STAT IN TABULAR FORMAT FOR


REQ VAR*/

PROC TABULATE DATA=STUD_PERF OUT=NEW_DESC;


VAR NOS;
TABLE NOS*(SUM MEAN MEDIAN NMISS N STDDEV);
RUN;

/*TO GENERATE DESCRIPTIVE STAT WITH CLASSIFICATION


VAR FOR SUMMARY DATA*/
PROC TABULATE DATA=STUD_PERF OUT=NEW_DESC1;
VAR NOS;
CLASS GENDER;
TABLE GENDER,NOS*(SUM MEAN MEDIAN NMISS N STDDEV);
RUN;

/*KEYLABEL*/
PROC TABULATE DATA=STUD_PERF;
VAR NOS;
CLASS LOCATION;
TABLE(NOS,ALL),LOCATION;
KEYLABEL ALL='TOTAL';
RUN;
/*WE HAVE TO TAKE FROM OUR LIB*/
/*TO REPORT THE TOTAL NO OF STUDENTS IN VARIOUS
INSTS FROM THE ABOVE TABLE*/
PROC TABULATE DATA=SASHELP.DATA_MIN;
VAR QTY;
TABLE QTY;
RUN;

/*FREQUENCY ANALYSIS*/

PROC TABULATE DATA=SASHELP.DATA_MIN;


CLASS QTY;
TABLE QTY;
RUN;

/*FREQUENCY ANALYSIS*/

PROC TABULATE DATA=SASHELP.DATA_MIN;


CLASS QUALIFICATION;
TABLE QUALIFICATION;
RUN;

/*SEPARATED ANALYSIS USING BY STMT IN TABUALAE


PROCEDURE*/

PROC SORT DATA=SASHELP.DATA_MIN;


BY AREA;
RUN;
PROC TABULATE DATA=SASHELP.DATA_MIN;
BY AREA;
CLASS AREA;
TABLE AREA;
RUN;

/*TO REPORT THE TOTAL QTY INTO


DIFFERENT LOCATION*/

PROC SORT DATA=SASHELP.DATA_MIN;


BY AREA;
RUN;
PROC TABULATE DATA=SASHELP.DATA_MIN;
BY AREA;
VAR QTY;
CLASS AREA;
TABLE AREA QTY;
RUN;

/*TO REPORT THE TOTAL QTY, RATE


WITH THE SPECIFIED CLASSIFICATION*/

PROC SORT DATA=SASHELP.DATA_MIN;


BY PRODUCT_ID ;
RUN;
PROC TABULATE DATA=SASHELP.DATA_MIN;
BY PRODUCT_ID ;
VAR RATE QTY;
CLASS PRODUCT_ID ;
TABLE PRODUCT_ID RATE QTY ;
RUN;

/*TO REPORT THE TOT NO OF QTY TOT NO OF RATE


WITH MULTIPLE TYPES OF CLASS VARIBLES*/

PROC SORT DATA=SASHELP.DATA_MIN;


BY PRODUCT_ID AREA ;
RUN;
PROC TABULATE DATA=SASHELP.DATA_MIN;
BY PRODUCT_ID AREA;
VAR RATE QTY;
CLASS PRODUCT_ID AREA;
TABLE PRODUCT_ID RATE QTY AREA;
RUN;
OPTIONS LS=200;
/*DIMENSION PROCEDURE IN TABULATE PROCEDURE*/
PROC TABULATE DATA=SASHELP.DATA_MIN;
CLASS AREA ITEM_TYPE;
TABLE AREA ITEM_TYPE;
RUN;

/*TO GENERATE THE DIMENSION WITH CROSS


TABULATION*/
/*TO REPORT TOT QTY FROM D/F LOCATION AND
D/F GENDER*/

PROC TABULATE DATA=SASHELP.DATA_MIN;


VAR QTY;
CLASS AREA GENDER ITEM_TYPE;
TABLE AREA*GENDER*ITEM_TYPE,(QTY ALL);
RUN;

/*KEYLABEL*/

PROC TABULATE DATA=SASHELP.DATA_MIN;


VAR QTY;
CLASS AREA;
TABLE(QTY,ALL),AREA;
KEYLABEL ALL='TOTAL';
RUN;

/*REPORT PROCEDURE*/
/*BY DEFAULT STMTS OF PROC REPORT*/
PROC REPORT DATA=STUD_PERF;
RUN;

/*KEEP OPTIONS*/
/*(KEEP OPTIONS ONLY USED IN RESULT WINDOW ONLY)*/
PROC REPORT DATA=STUD_PERF (KEEP=SRN GENDER LOCATION INST);
RUN;

OPTIONS LS=100;
/*NO WINDOW OPTION*/
/*TO REPORT THE OUTPUT IN TRADITIONAL OUTPUT
WINDOW */

PROC REPORT DATA=STUD_PERF NOWD;


RUN;

/*HEADSKIP*/
PROC REPORT DATA=STUD_PERF NOWD HEADSKIP;
RUN;

/*HEADSKIP IN RESULT WINDOW*/

PROC REPORT DATA=STUD_PERF HEADSKIP;


RUN;

/*HEADLINE*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;


RUN;
OPTIONS LS=150;

/*SPACING OPTION*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE SPACING=8;


RUN;

/*COLUMNS STMT*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;


COLUMNS SRN GENDER INST PHY;
RUN;

/*GROUP WITH DEFINE STMT*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;


COLUMNS SRN GENDER INST PHY;
DEFINE GENDER/GROUP;
RUN;

/*ACROSS WITH DEFINE STMT*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;


COLUMNS SRN GENDER INST PHY;
DEFINE GENDER/ACROSS;
RUN;
/*ORDER WITH DEFINE STMT*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;


COLUMNS SRN GENDER INST PHY;
DEFINE GENDER/ORDER;
RUN;

/*DESCENDING WITH DEFINE STMT*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;


COLUMNS SRN INST PHY GENDER;
DEFINE GENDER/GROUP;
DEFINE GENDER/DESCENDING;
RUN;

/*MULTIPLE DEFINE STMTS USED*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;


COLUMNS SRN GENDER INST PHY LOCATION;
DEFINE GENDER/ORDER;
DEFINE LOCATION/ACROSS;
RUN;

/*BREAK STMT*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;


COLUMNS SRN GENDER INST PHY;
DEFINE GENDER/GROUP;
BREAK AFTER GENDER/OL UL SUMMARIZE;
RUN;

/*SUPPRESS OPTIONS*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;


COLUMNS SRN GENDER INST PHY;
DEFINE GENDER/GROUP;
BREAK AFTER GENDER/OL UL SUPPRESS;
RUN;

/*COMPUTE BLOCK*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;


COLUMNS SRN GENDER INST PHY;
DEFINE GENDER/GROUP;
BREAK AFTER GENDER/OL UL SUMMARIZE;
COMPUTE AFTER GENDER;
GENDER='TOTAL';
ENDCOMP;
RUN;

/*RBREAK*/

OPTIONS PS=300;
PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;
COLUMNS SRN GENDER INST PHY;
DEFINE GENDER/GROUP;
BREAK AFTER GENDER/OL UL SUMMARIZE;
COMPUTE AFTER GENDER;
GENDER='TOTAL';
ENDCOMP;
RBREAK AFTER/DOL DUL SUMMARIZE;
COMPUTE AFTER;
GENDER='GTOTAL';
ENDCOMP;
RUN;

/*NEW VAR CREATION IN REPORT PROCEDURE*/


/*(USING COMPUTE BLOCK)*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;


COLUMNS SRN GENDER INST PHY CHEM TOTAL;
DEFINE GENDER/GROUP;
DEFINE TOTAL/COMPUTED;
BREAK AFTER GENDER/OL UL SUMMARIZE;
COMPUTE AFTER GENDER;
GENDER='TOTAL';
ENDCOMP;
RBREAK AFTER/DOL DUL SUMMARIZE;
COMPUTE AFTER;
GENDER='GTOTAL';
ENDCOMP;
COMPUTE TOTAL;
TOTAL=_C4_+_C5_;
ENDCOMP;
RUN;

/*CONDITIONAL STMT WITH COMPUTE BLOCK*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;


COLUMNS SRN GENDER INST PHY CHEM TOTAL STATUS;
DEFINE GENDER/GROUP;
DEFINE TOTAL/COMPUTED;
DEFINE STATUS/COMPUTED;
BREAK AFTER GENDER/OL UL SUMMARIZE;
COMPUTE AFTER GENDER;
GENDER='TOTAL';
ENDCOMP;
RBREAK AFTER/DOL DUL SUMMARIZE;
COMPUTE AFTER;
GENDER='GTOTAL';
ENDCOMP;
COMPUTE TOTAL;
TOTAL=_C4_+_C5_;
ENDCOMP;
COMPUTE STATUS/CHAR;
IF _C4_ GT _C5_ THEN STATUS='GOOD';
ELSE STATUS='AVERAGE';
ENDCOMP;
RUN;

/*LINE STMT*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP;


COLUMNS SRN GENDER INST PHY CHEM TOTAL;
DEFINE GENDER/GROUP;
DEFINE TOTAL/COMPUTED;
DEFINE STATUS/COMPUTED;
BREAK AFTER GENDER/OL UL SUMMARIZE;
COMPUTE AFTER GENDER;
GENDER='TOTAL';
ENDCOMP;
COMPUTE TOTAL;
TOTAL=_C4_+_C5_;
ENDCOMP;
COMPUTE BEFORE;
LINE '--------------------------------------';
LINE 'THIS IS REPORT BELONGS STDTS PERFORM';
LINE '--------------------------------------';
ENDCOMP;
COMPUTE AFTER;
LINE 50*'-';
LINE 'THIS IS REPORT BELONGS STDTS PERFORM';
LINE 50*'-';
ENDCOMP;
RUN;

/*BOX OPTION*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP BOX;


COLUMNS SRN GENDER INST PHY CHEM TOTAL;
DEFINE GENDER/GROUP;
DEFINE TOTAL/COMPUTED;
DEFINE STATUS/COMPUTED;
BREAK AFTER GENDER/OL UL SUMMARIZE;
COMPUTE AFTER GENDER;
GENDER='TOTAL';
ENDCOMP;
COMPUTE TOTAL;
TOTAL=_C4_+_C5_;
ENDCOMP;
COMPUTE BEFORE;
LINE '--------------------------------------';
LINE 'THIS IS REPORT BELONGS STDTS PERFORM';
LINE '--------------------------------------';
ENDCOMP;
COMPUTE AFTER;
LINE 50*'-';
LINE 'THIS IS REPORT BELONGS STDTS PERFORM';
LINE 50*'-';
ENDCOMP;
RUN;

/*OUT OPTION*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP BOX OUT=REP_PERFOR;


COLUMNS SRN GENDER INST PHY CHEM TOTAL;
DEFINE GENDER/GROUP;
DEFINE TOTAL/COMPUTED;
DEFINE STATUS/COMPUTED;
BREAK AFTER GENDER/OL UL SUMMARIZE;
COMPUTE AFTER GENDER;
GENDER='TOTAL';
ENDCOMP;
COMPUTE TOTAL;
TOTAL=_C4_+_C5_;
ENDCOMP;
COMPUTE BEFORE;
LINE '--------------------------------------';
LINE 'THIS IS REPORT BELONGS STDTS PERFORM';
LINE '--------------------------------------';
ENDCOMP;
COMPUTE AFTER;
LINE 50*'-';
LINE 'THIS IS REPORT BELONGS STDTS PERFORM';
LINE 50*'-';
ENDCOMP;
RUN;

/*COLOR OPTION*/

PROC REPORT DATA=STUD_PERF HEADLINE BOX;


COLUMNS SRN GENDER PHY LOCATION;
DEFINE GENDER/GROUP COLOR=BLUE;
RUN;

/*WHERE STMT*/

PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;


COLUMNS SRN GENDER INST PHY;
DEFINE GENDER/ORDER;
WHERE PHY>80;
RUN;

/*CORRELATION PROCEDURE*/
/*NEGATIVE CORRELATION*/
OPTIONS LS=120;
DATA CORRN;
INPUT EXPS SALES @@;
DATALINES;
4 4 6 78 46 36 35 25 86 32 64 22 64 44
;
proc print DATA=CORRN;
RUN;
PROC CORR DATA=CORR;
VAR EXPS SALES;
RUN;
/*POSITIVE CORRELATION*/

DATA CORRP;
INPUT EXPS SALES @@;
DATALINES;
4 10 6 12 46 58 35 45 86 98 64 78 64 70
;
PROC CORR DATA=CORRP;
VAR EXPS SALES;
RUN;

/*TO FINDOUT THE RELATION BETWEEN THE TWO VAR*/


DATA CORRP;
INPUT EXPS SALES LOCATION $ @@ ;
DATALINES;
4 10 CHEN 6 12 HYD 46 58 CHEN 35 45 BAN 86 98 BAN 64 78 CUL 64 70 DEL
;
PROC CORR DATA=CORRP OUTP=P_DS OUTS=S_DS OUTK=K_DS;
VAR EXPS SALES;
RUN;

/*TO GENERATE THE CORRELATION MEASURES FOR


SEPARATE BY GROUPS*/
PROC SORT DATA=CORRP;
BY LOCATION;
RUN;
PROC CORR DATA=CORRP OUTP=P_DS;
VAR EXPS SALES;
BY LOCATION;
RUN;

/*WE HAVE TO TAKE DATA FROM OUT SASHELP LIB*/

PROC SORT DATA=SASHELP.DMTOOLS;


BY GROUP;
RUN;
PROC CORR DATA=SASHELP.DMTOOLS;
BY GROUP;
VAR SORT ICON;
RUN;

/*UNIVARIATE PROCEDURE*/
PROC UNIVARIATE DATA=CORRP;
RUN;

/*WITH VAR STMT*/


PROC UNIVARIATE DATA=CORRP;
VAR EXPS SALES;
CLASS LOCATION;
RUN;
/*TO GENERATE THE HISTOGRAM USING UNIVARIATE
PROCEDURE*/
PROC UNIVARIATE DATA=CORRP;
HISTOGRAM;
RUN;
/*BY STMT USED IN UNIVARIATE PROCEDURE*/

PROC SORT DATA=CORRP;


BY LOCATION;
RUN;
PROC UNIVARIATE DATA=CORRP;
VAR EXPS SALES;
BY LOCATION;
RUN;

/*WE HAVE TO TAKE DATA FROM ONE LIB*/

PROC SORT DATA=SASHELP.PROFIT;


BY AREA;
RUN;
PROC UNIVARIATE DATA=SASHELP.PROFIT;
VAR INVEST ACT_PROFIT;
CLASS COMPANY;
BY AREA;
RUN;

/*SUMMARY PROCEDURE*/
/*TO GENERATE THE NO OF OBS*/

PROC SUMMARY DATA=CORRP PRINT;


RUN;

/*TO GENERATE DESCRIPTIVE STAT WITH NUM


VAR*/

PROC SUMMARY DATA=CORRP PRINT;


VAR EXPS SALES;
CLASS LOCATION;
RUN;

/*REGRESSION PROCEDURE*/
/*EG FOR REGRESSION STMT IN SAS SYSTEM*/
/*IN FIRST WE HAVE TO TAKE SIMPLE PROGRAM*/
DATA REGR;
INPUT PEXS SALES @@;
DATALINES;
7 12 10 14 9 14 5 7 11 15 5 9 3 6
;
PROC REG DATA=REGR;
VAR SALES PEXS;
MODEL SALES=PEXS;
PLOT SALES*PEXS;
RUN;
PROC REG DATA=REGR;
VAR SALES PEXS;
MODEL SALES=PEXS;
PLOT SALES*PEXS/SYMBOL='*';
RUN;
/*LOGISTIC REGRESSION*/
DATA REGR1;
INPUT PEXS SALES PRICE @@;
DATALINES;
7 12 15 10 14 20 9 14 16 5 7 9 11 15 17 5 9 11 3 6 9
;
PROC REG DATA=REGR1;
VAR SALES PEXS PRICE;
MODEL SALES=PEXS PRICE;
PLOT SALES*PEXS;
PLOT SALES*PRICE;
RUN;

/*LOGISTIC REPORT*/

PROC LOGISTIC DATA=SASHELP.PROFIT;


CLASS COMPANY;
MODEL INVEST=EST_PROFIT ACT_PROFIT;
RUN;

/*ODS(OUTPUT DELIVERY SYSTEM)*/


/*FOR PRINT(LISTING PURPOSE)*/

ODS LISTING CLOSE;


ODS HTML FILE='D:\LIST_PRINT.HTML';
PROC PRINT DATA=SASHELP.CLASS;
RUN;
ODS HTML CLOSE;
ODS LISTING;

/*FOR LOGISTIC PROCEDURE*/

ODS LISTING CLOSE;


ODS HTML FILE='D:\LIST_PRINT1.HTML';
PROC LOGISTIC DATA=SASHELP.PROFIT;
CLASS COMPANY;
MODEL INVEST=EST_PROFIT ACT_PROFIT;
RUN;
ODS HTML CLOSE;
ODS LISTING;

/*FOR MEANS PROCEDURE*/

ODS LISTING CLOSE;


ODS HTML FILE='D:\LIST_MEANS.HTML';
PROC MEANS DATA=SASHELP.PROFIT;
VAR INVEST;
CLASS COMPANY;
RUN;
ODS HTML CLOSE;
ODS LISTING;

/*FOR FREQ PROCEDURE*/

ODS LISTING CLOSE;


ODS RTF FILE='D:\LIST_FREQ.RTF';
PROC FREQ DATA=SASHELP.PROFIT;
TABLES AREA*COMPANY;
RUN;
ODS RTF CLOSE;
ODS LISTING;

/*FOR TABULATE PROCEDURE*/


ODS LISTING CLOSE;
ODS PDF FILE='D:\LIST_TAB.PDF';
PROC TABULATE DATA=SASHELP.PROFIT;
CLASS AREA COMPANY;
TABLE AREA,COMPANY/BOX='REP BETWEEN COMP
AND LOC';
RUN;
ODS PDF CLOSE;
ODS LISTING;

/*REPORT PROCEDURE*/
ODS LISTING CLOSE;
ODS HTML FILE='D:\LIST_REP.HTML';
PROC REPORT DATA=STUD_PERF NOWD HEADSKIP HEADLINE;
COLUMNS SRN GENDER INST PHY CHEM TOTAL STATUS;
DEFINE GENDER/GROUP;
DEFINE TOTAL/COMPUTED;
DEFINE STATUS/COMPUTED;
BREAK AFTER GENDER/OL UL SUMMARIZE;
COMPUTE AFTER GENDER;
GENDER='TOTAL';
ENDCOMP;
RBREAK AFTER/DOL DUL SUMMARIZE;
COMPUTE AFTER;
GENDER='GTOTAL';
ENDCOMP;
COMPUTE TOTAL;
TOTAL=_C4_+_C5_;
ENDCOMP;
COMPUTE STATUS/CHAR;
IF _C4_ GT _C5_ THEN STATUS='GOOD';
ELSE STATUS='AVERAGE';
ENDCOMP;
RUN;
ODS HTML CLOSE;
ODS LISTING;

/*FOR CORRELATION PROC*/

ODS LISTING CLOSE;


ODS RTF FILE='D:\LIST_CORR.RTF';
PROC SORT DATA=CORRP;
BY LOCATION;
RUN;
PROC CORR DATA=CORRP OUTP=P_DS;
VAR EXPS SALES;
BY LOCATION;
RUN;
ODS RTF CLOSE;
ODS LISTING;

/*FOR UNIVARIATE PROC*/

ODS LISTING CLOSE;


ODS PDF FILE='D:\LIST_UNI.PDF';
PROC SORT DATA=CORRP;
BY LOCATION;
RUN;
PROC UNIVARIATE DATA=CORRP;
VAR EXPS SALES;
BY LOCATION;
RUN;
ODS PDF CLOSE;
ODS LISTING;

/*SUMMARY PROC*/

ODS LISTING CLOSE;


ODS HTML FILE='D:\LIST_SUM.HTML';
PROC SUMMARY DATA=CORRP PRINT;
VAR EXPS SALES;
CLASS LOCATION;
RUN;
ODS HTML CLOSE;
ODS LISTING;

PROC PRINT DATA=SASHELP.CLASS;


RUN;

/*EXPORTING THE LISTING OUTPUT INTO THE


RTF FILE FORMAT WITH COLORS*/
/*OBS WITH COLOUR*/

ODS LISTING CLOSE;


ODS HTML FILE='C:\LISTING.HTML';
PROC PRINT DATA=SASHELP.CLASS
STYLE(OBS)=[FOREGROUND=BLACK BACKGROUND=PINK];
RUN;
ODS HTML CLOSE;
ODS LISTING;

/*OBS AND HEADER WITH COLOUR*/

ODS LISTING CLOSE;


ODS RTF FILE='C:\LISTING1.RTF';
PROC PRINT DATA=SASHELP.CLASS
STYLE(OBS)=[FOREGROUND=BLACK BACKGROUND=PINK]
STYLE(HEADER)=[FOREGROUND=BLUE BACKGROUND=YELLOW];
RUN;
ODS RTF CLOSE;
ODS LISTING;

/*OBS HEADER AND OBSHEADER WITH COLOUR*/

ODS LISTING CLOSE;


ODS HTML FILE='C:\LISTING2.HTML';
PROC PRINT DATA=SASHELP.CLASS
STYLE(OBS)=[FOREGROUND=BLACK BACKGROUND=PINK]
STYLE(HEADER)=[FOREGROUND=BLUE BACKGROUND=YELLOW]
STYLE(OBSHEADER)=[FOREGROUND=GREEN BACKGROUND=BROWN];
RUN;
ODS HTML CLOSE;
ODS LISTING;

/*ALL WITH BE COLOUR*/

ODS LISTING CLOSE;


ODS HTML FILE='C:\LISTING3.HTML';
PROC PRINT DATA=SASHELP.CLASS
STYLE(OBS)=[FOREGROUND=BLACK BACKGROUND=PINK]
STYLE(HEADER)=[FOREGROUND=BLUE BACKGROUND=YELLOW]
STYLE(OBSHEADER)=[FOREGROUND=GREEN BACKGROUND=BROWN]
STYLE(DATA)=[FOREGROUND=YELLOW BACKGROUND=GREEN];
RUN;
ODS HTML CLOSE;
ODS LISTING;

/*PDF FILE FORMAT*/

ODS LISTING CLOSE;


ODS PDF FILE='C:\LISTING4.PDF';
PROC PRINT DATA=SASHELP.CLASS
STYLE(OBS)=[FOREGROUND=BLACK BACKGROUND=PINK]
STYLE(HEADER)=[FOREGROUND=BLUE BACKGROUND=YELLOW]
STYLE(OBSHEADER)=[FOREGROUND=GREEN BACKGROUND=BROWN]
STYLE(DATA)=[FOREGROUND=YELLOW BACKGROUND=GREEN];
RUN;
ODS PDF CLOSE;
ODS LISTING;

/*T-TEST FOR SINGLE MEAN*/


DATA EMPLOY;
INPUT EMP_SALARY @@;
DATALINES;
3000 2000
3500 1500
3200 4500
3200 1500
3200 1200
2100 2900
2300 1200
1300 2100
;
PROC TTEST DATA=EMPLOY H0=2400 ALPHA=0.10;
VAR EMP_SALARY;
RUN;

/*T-TEST PROCEDURE FOR DOUBLE MEAN*/


DATA SAMPLE;
INPUT ENGINEERS ACCOUNTANTS;
DATALINES;
125 112
115 98
119 109
85 96
97 77
107 70
125 114
125 100
118 .
;
PROC TTEST DATA=SAMPLE ALPHA=0.5;
VAR ENGINEERS ACCOUNTANTS;
RUN;

/*TTEST FOR COMPARISON OF GROUP ANALYSIS


(MEANS GROUPING ANALYSIS)*/

data graze;
length GrazeType $ 10;
input GrazeType $ WtGain @@;
datalines;
controlled 45 controlled 62
controlled 96 controlled 128
controlled 120 controlled 99
controlled 28 controlled 50
controlled 109 controlled 115
controlled 39 controlled 96
controlled 87 controlled 100
controlled 76 controlled 80
continuous 94 continuous 12
continuous 26 continuous 89
continuous 88 continuous 96
continuous 85 continuous 130
continuous 75 continuous 54
continuous 112 continuous 69
continuous 104 continuous 95
continuous 53 continuous 2
;
run;

proc sort;
by GrazeType;
proc means data=graze noprint;
var WtGain;
by GrazeType;
output out=newgraze;
run;

proc ttest data=newgraze;


class GrazeType;
var WtGain;
run;

/*PAIRED SAMPLE TTEST PROCEDURE*/


DATA PRESSURE;
INPUT OUTLETNO BEFORECOMP AFTERCOMP;
DATALINES;
1 240 270
2 225 245
3 250 260
4 280 290
5 200 190
6 150 160
7 165 160
8 100 130
9 130 135
10 170 175
;
PROC TTEST DATA=PRESSURE;
PAIRED BEFORECOMP*AFTERCOMP;
RUN;

/*ANOTHER EXAMPLE*/

data pressure;
input SBPbefore SBPafter @@;
datalines;
120 128 124 131 130 131 118 127
140 132 128 125 140 141 135 137
126 118 130 132 126 129 127 135
;
run;

proc ttest;
paired SBPbefore*SBPafter;
run;

/*ANOVA PROCEDURE*/

data PainRelief;
input PainLevel Codeine Acupuncture Relief @@;
datalines;
1 1 1 0.0 1 2 1 0.5 1 1 2 0.6 1 2 2 1.2
2 1 1 0.3 2 2 1 0.6 2 1 2 0.7 2 2 2 1.3
3 1 1 0.4 3 2 1 0.8 3 1 2 0.8 3 2 2 1.6
4 1 1 0.4 4 2 1 0.7 4 1 2 0.9 4 2 2 1.5
5 1 1 0.6 5 2 1 1.0 5 1 2 1.5 5 2 2 1.9
6 1 1 0.9 6 2 1 1.4 6 1 2 1.6 6 2 2 2.3
7 1 1 1.0 7 2 1 1.8 7 1 2 1.7 7 2 2 2.1
8 1 1 1.2 8 2 1 1.7 8 1 2 1.6 8 2 2 2.4
;
proc anova data=PainRelief;
class PainLevel Codeine Acupuncture;
model Relief = PainLevel Codeine|Acupuncture;
RUN;
/*SAS/GRAPH-PROCEDURE */
/*VBAR CHART*/

data shirts;
input Size $ @@;
datalines;
medium large
large large
large medium
medium small
small medium
medium large
small medium
large large
large small
medium medium
medium medium
medium large
small small
;
proc chart data=shirts;
vbar size;
run;

/*HBAR CHART*/

proc chart data=shirts;


Hbar size;
run;
/*PIE CHART*/

proc chart data=shirts;


pie size;
run;
/*BLOCK CHART*/

proc chart data=shirts;


BLOCK size;
run;

/*STAR CHART*/

OPTIONS LS=90 PS=100;


proc chart data=shirts;
STAR size;
run;

Potrebbero piacerti anche