Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
/*WORD DOCUMENT*/
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 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;
/*NWAY OPTION*/
/*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;
/*TABULATE PROCEDURE*/
/*FREQUENCY ANALYSIS*/
/*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*/
/*FREQUENCY ANALYSIS*/
/*KEYLABEL*/
/*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 */
/*HEADSKIP*/
PROC REPORT DATA=STUD_PERF NOWD HEADSKIP;
RUN;
/*HEADLINE*/
/*SPACING OPTION*/
/*COLUMNS STMT*/
/*BREAK STMT*/
/*SUPPRESS OPTIONS*/
/*COMPUTE BLOCK*/
/*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;
/*LINE STMT*/
/*BOX OPTION*/
/*OUT OPTION*/
/*COLOR OPTION*/
/*WHERE STMT*/
/*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;
/*UNIVARIATE PROCEDURE*/
PROC UNIVARIATE DATA=CORRP;
RUN;
/*SUMMARY PROCEDURE*/
/*TO GENERATE THE NO OF OBS*/
/*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*/
/*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;
/*SUMMARY PROC*/
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;
/*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*/
/*STAR CHART*/