Posts

Showing posts from October, 2024

18.PROC TRANSPOSE

                                                  PROC TRANSPOSE  PROC TRANSPOSE:- USED FOR DATA ROTATION/FLIPPING DATA/RE-STRUCTURING THE DATA -OBSERVATIONS TO VARIABLES -VARIABLES TO OBSERVATIONS BY:: BY USING SORTED DATA WE CAN ALSO TRANSPOSE THE DATA DATA TRANS; INPUT NAME$ SUBJECT$ MARKS; CARDS; RAJU MATHS 52 SHIVA ENGLISH 56 MANEESHA ZOO 45 RAVLI ENGLISH 55 KUMAR BOTANY 65 REDDY MATHS 63 ANIL ZOO 56 RAM MATHS 54 ; RUN; PROC SORT DATA=TRANS; BY NAME; RUN; PROC TRANSPOSE DATA=TRANS OUT=TRANSPOSED; BY NAME; ID SUBJECT; VAR MARKS; RUN; BY DEFAULT PROC TRANSPOSE WILL TRANSPOSE THE "ALL NUMERIC VARIABLES" IN THE DATASET  PROC TRANSPOSE DATA=TRANS OUT=NOSTATEMENT PREFIX=STUDENT; RUN; SORT PROCEDURE IS NOT REQUIRED IF YOU ARE MENTIONED "NOTSORTED" OPTION IN "BY STATEMENT PROC TRANSPOSE DATA=TRANS NAME=VNAME OUT=NOTSORTED; BY NAME NOTSORTED; ID SUBJECT; VAR...

17.DO LOOPS

                                                  DO LOOPS  --TO DO REPETITIVE CALCULATIONS --AND TO REDUCE THE CODE DATA REPEAT; AMOUNT=5000; RATE=0.50; YEARLY=AMOUNT*RATE; QUARTERLY+((QUARTERLY+AMOUNT)+RATE/4); QUARTERLY+((QUARTERLY+AMOUNT)+RATE/4); QUARTERLY+((QUARTERLY+AMOUNT)+RATE/4); QUARTERLY+((QUARTERLY+AMOUNT)+RATE/4); RUN; PROC PRINT; RUN; DATA REAL; AMOUNT=5000; RATE=0.50; YEARLY=AMOUNT*RATE; DO I=1 TO 4; QUARTERLY+((QUARTERLY+AMOUNT)+RATE/4); OUTPUT; END; RUN; PROC PRINT; RUN; DATA REAL; AMOUNT=5000; RATE=0.50; YEARLY=AMOUNT*RATE; DO I=1 TO 1000; QUARTERLY+((QUARTERLY+AMOUNT)+RATE/4); OUTPUT; END; RUN; PROC PRINT; RUN; -IF YOU ARE USING "DO" STATEMENT IT WILL BE CLOSED WITH "END" STATEMENT WITHOUT 'OUTPUT' STATEMENT IT WILL GIVE 'ONLY ONE OBSERVATION' AND 'HIGHEST ITRETIVE VALUE' DATA AA; DO I=1 TO 5; *1+2=3 2+2=4 3+2=5 4+2=6 5+2=7 I=6 Y=7 */; Y=...

16.SAS FUNCTIONS

                                               SAS FUNCTIONS TO CHANGE THE CASE OF THE CHARACTER -- UPCASE :: VALUE WILL CAPITAL LETTERS -- LOWCASE :: VALUE WILL SMALL LETTERS -- PROPCASE :: FIRST LETTER WILL BE IN CAPITAL REMAINING ALL SMALL LETTERS   DATA CASE; STR='THis Is SaS dAtA vaLUE'; AAA=UPCASE(STR); BBB=LOWCASE(STR); CCC=PROPCASE(STR); RUN; PROC PRINT; RUN; DATA CLASS; SET SASHELP.CLASS; NAME=LOWCASE(NAME); RUN; PROC PRINT; RUN; --TO EXTRACT THE PART OF THE STRING  1. SUBSTR (VARIABLE,POSITION,LENGTH)  2. CHAR DATA STR; STRING='RAMAVATHI RASAM INFOSYS HYD'; STR1=SUBSTR(STRING,3,3); STR2=SUBSTR(STRING,5); STR3=SUBSTR(STRING,5,7); RUN; PROC PRINT; RUN; DATA SS; A='RANGARAJ HITECH CITY'; B=SUBSTR(A,4); C=SUBSTR(A,7,3); RUN; PROC PRINT; RUN; DATA DD; STR='KJHSDDGA ABDJGUY'; STR1=SUBSTR(STR,6,5); RUN; PROC PRINT; RUN; DATA SASS; SET SASHELP.CLASS; K...

15.How to learn retain and sum statements in sas?

How to learn retain and sum statements in sas? 1.CREATING AN ACCUMULATING(OVERALL) TOTAL VARIABLE 2.ACCUMULATING TOTAL FOR GROUPING THE DATA     1.RETAIN STATEMENT     2.SUM STATEMENT     1.RETAIN(HOLDING THE VALUE) STATEMENT -->IT WILL RETAIN VALUE OF VARIABLE IN PDV ACROSS THE ITERATION OF DATASET -->IT WILL INITIALIZE THE RETAIN VALUE TO 'MISSING/ZERO' BEFORE THE FIRST EXECUTION -->IF THERE IS A MISSING VALUE IN  VARIABLE ,ALL VARIABLE VALUES WILL BE MISSING DATA SAS; INPUT ID SALARY; CARDS; 101 25000 102 26000 103 27000 104 18000 105 28000 106 23000 107 29000 108 30000 109 31000 110 34000 ; RUN; PROC PRINT; RUN; DATA SWA; SET SAS; TOTAL=SALARY+TOTAL; RUN; PROC PRINT; RUN; DATA SWA11; SET SAS; TOTAL=0; TOTAL=SALARY+TOTAL; *25000+0=25000 26000+0=26000; RUN; PROC PRINT; RUN; DATA S; SET SASHELP.CLASS; AGENEW=0; TOTAL=AGE+AGENEW; RUN; PROC PRINT; RUN; TO AVOID THIS CONDITION USE 'RETAIN' STATEMENT  DATA SWA12; SET SAS; RETAIN TOTAL 0; TOT...

14.PUT,FILE,TABULATE STATEMENTS

                              14.PUT,FILE,TABULATE STATEMENTS ---> WHAT IS THE DIFF B/W INPUT AND PUT    ? INPUT : IT WRITES THE VARIABLES INFO IN SAS VARIABLES PUT : IT WRITES VARIABLES FOR EXTERNAL ENVIRONMENT              ---> WHAT IS THE DIFF B/W INFILE AND FILE ? INFILE : IT IS USED FOR EXTERNAL DATASETS TO SAS ENVIRONMENT FILE : IT IS USED PATH WHERE YOU WANT TO STORE THE RAW DATA TO "READING" THE TEXT FILE INTO SAS::PROC IMPORT IN DATASTEP DATA SAS; INFILE "C:\Users\sumed\OneDrive\Desktop\CLASS.TXT"; INPUT NAME$ AGE GEND$ HT WT; RUN; PROC PRINT; RUN; TO "WRITE" SAS DATA TO EXTERNAL ENVIRONMENT:: PROC EXPORT IN DATASETP --PUT:GIVE A VARIABLE INFO OF SAS DATASET --FILE:WHERE WE CAN WRITE THE FILE/EXTERNAL FILE PATH DATA SAS11; SET SASHELP.CLASS; FILE 'C:\Users\sumed\OneDrive\Desktop\CLASS12.txt'; PUT NAME AGE SEX HEIGHT WEIGHT; RUN; PROC PRINT; RUN; TO GET D...

13.OUTPUT STATEMENT

                                            OUTPUT STATEMENT CONTROLLING THE OUTPUT :::: --->HOW TO CREATE MULTIPLE OBSERVATIONS FROM 'ONE OBSERVATION'? ---> BY USING 'OUTPUT' STATEMENT          FOR CALCULATING THE AGES FOR ONLY ONE YEAR WHAT IF CALCULATING THE AGES FOR 5 YR? 1. FOR CALCULATING THE AGES FOR ONLY ONE YEAR DATA SAS; SET SASHELP.CLASS; YEAR=1; NEWAGE=AGE+1; *14+1=15 12+1=13 ;   RUN; PROC PRINT; RUN; 2. WHAT IF CALCULATING THE AGES FOR 5 YR ? LAST OBSERVATION VALUE WILL COME IN THE OUTPUT DATA SAS; SET SASHELP.CLASS; YEAR=1; NEWAGE=AGE+1; YEAR=2; NEWAGE=AGE+2; YEAR=3; NEWAGE=AGE+3; YEAR=4; NEWAGE=AGE+4; YEAR=5; NEWAGE=AGE+5; RUN; PROC PRINT; RUN; ----FOR PROPER OUTPUT USE 'OUTPUT' STATEMENT TO THE SYNTAX DATA SAS; SET SASHELP.CLASS; YEAR=1; NEWAGE=AGE+1; OUTPUT; YEAR=2;  NEWAGE=AGE+2; OUTPUT; YEAR=3; NEWAGE=AGE+3; OUTPUT...

12.LABELS AND FORMATS

                                    12 .  LABELS AND FORMATS 1.LABELS::: IT CHANGE THE APPEARANCE OF VARIABLES EG::        STRTDT=====START DATE                                GENDER=====SEX 2.FORMATS::: TO "WRITE" THE DATA 3.INFORMATS::: TO "READ" THE DATA 2. SAS FORMATS:- ARE IN CHARACTER $,                                                  NUMERIC &                                                  DATE    CHARACTER:             FIRST_NAME $2.                ...

11.GCHART AND GPLOT

                                                      GCHART AND GPLOT   1. GCHART : PICTORIAL REPRESENTATION OF DATA 2. GPLOT : IT WILL PLOT THE GRAPHICAL REPRESENTATION OF DATA 1. GCHART : PICTORIAL REPRESENTATION OF DATA PROC GCHART DATA=SASHELP.CLASS; VBAR NAME AGE; RUN; PROC GCHART DATA=SASHELP.CLASS; HBAR SEX AGE; RUN; PROC GCHART DATA=SASHELP.CLASS; VBAR3D NAME AGE; RUN; PROC GCHART DATA=SASHELP.CLASS; HBAR3D SEX AGE; RUN; PROC GCHART DATA=SASHELP.CLASS; PIE NAME AGE; RUN; PROC GCHART DATA=SASHELP.CLASS; PIE3D SEX AGE; RUN; 2.GPLOT: IT WILL PLOT THE GRAPHICAL REPRESENTATION OF DATA PROC GPLOT DATA=PROG1.SALES; PLOT SALARY*GENDER/HAXIS=1 TO 12; FORMAT SALARY DOLLAR12.2; LABEL SALARY='YEAR SALARY'; SYMBOL V=DOT I=JOIN CV=RED CI=GREEN;   RUN; PROC GPLOT DATA=PROG1.BUDGET; PLOT YR2004*MONTH YR2007*MONTH/OVERLAY HAXIS=1 TO 12 CFRAME="VE...

10.COMBINING THE DATASETS

                                        COMBINING THE DATASETS   ---> TWO DATASETS WILL BE COMBINED TOGETHER   1.APPENDING::: VERTICALLY COMBINING    2.CONCATENATING:: HORIZONTALLY COMBINING    3.MERGING:: HORIZONTALLY COMBINING  1. APPENDING ::(VERTICALLY)-IT WILL ADD THE ALL OBSERVATIONS FROM 2ND DATASET                  TO ORIGINAL(1ST) DATASET --->I. FOR THE SAME VARIABLE INFO IN BOTH DATASETS DATA AA; INPUT NAME$ AGE GEND$ CLASS; CARDS; KARTHIK 25  M 8 TIRUMALA 26 M 9 HEMA     24 F 10 RAMYA    25 F 11 ; RUN; PROC PRINT; RUN; DATA BB; INPUT NAME$ AGE GEND$ CLASS; CARDS; RAM     24 M 6 RAJU    26 M 5 NIKITHA 24 F 8 SRAVANI 26 F 6 AJAYRAJ 27 M 7 ; RUN; PROC PRINT; RUN; PROC APPEND BASE=AA             DATA=BB; RUN; II. ...

9.CREATING NEW VARIABLES

                            CREATING NEW VARIABLES --->1.ASSIGNMENT STATEMENT (XXXX=) --->2.CONDITIONAL STATEMENT (HAVE TO A CONDITION FOR VAR); --->3.SUM STATEMENT(XXX+YYY) --->1. ASSIGNMENT STATEMENT (XXXX=) DATA SAS; SET SASHELP.CLASS; RUN; PROC PRINT; RUN; DATA SAS; SET SASHELP.CLASS; NEWAGE=AGE; gender=sex; RUN; PROC PRINT; RUN; ---> 3.SUM STATEMENT(XXX+YYY) DATA SAS; SET SASHELP.CLASS; NEWAGE=AGE+2;         *11+2=13(NEWAGE); RUN; PROC PRINT; RUN; DATA SAS; SET SASHELP.CLASS; ANIL=AGE-2; RUN; PROC PRINT; RUN; DATA SAS; SET SASHELP.CLASS; ANIL=AGE*2; RUN; PROC PRINT; RUN; DATA SASAS; SET PROG1.SALES; BONUS=500; TOTAL=SALARY+BONUS;*25000+500=25500; RUN; PROC PRINT; RUN; --->2 .CONDITIONAL STATEMENT (HAVE TO A CONDITION FOR VARIABLES) ; THESE ARE THE CONDITIONAL STATEMEMTS:        1.IF THEN      2.IF THEN ELSE    3.IF THEN ELSE I...

8.GLOBAL OPTIONS

                                  CREATING USER(OWN) DEFINED FORMATS --->BY USING PROC FORMAT:::WE CAN USE USER DEFINED FORMAT               ****VALUE STATEMENT IS NEED IN USER DEFINED FORMAT   -->IF CHARACTER---DOLLAR SYMBOL IS USED   -->IF NUMERIC---NO NEED OF DOLLAR(LETTER/UNDERSCORE) SYMBOL   -->CANNOT BE MORE THAN 32 CHARACTER IF CHARACTER---DOLLAR SYMBOL PROC FORMAT;    VALUE $RAMU  'AU'='AUSTRALIA'                                   'US'='UNITED STATES'                           'OTHER'='MISSING'         'IN'='INDIA'; RUN; PROC PRINT DATA=PROG1.SALES; VAR COUNTRY GENDER; FORMAT COUNTRY $RAMU.     ; RUN; -->IF NUMERIC--...

7.VALIDATION AND CLEANING TECHNIQUES

            DATA VALIDATION AND DATA CLEANING : :: -->WE CAN CLEAN THE DATA OUTSIDE OF THE SAS ENVIRONMENT LIKE TEXT AND EXCEL FILE -->EDIT THE RAW DATA BY USING RIGHT CLICK-----> "EDIT MODE"--->BROWSE MODE OPTION -->BY PROGRAMATICALLY CAN WE CLEAN THE DATA? YES WE CAN, --->PROC PRINT:: BOTH CHARACTER  AND NUMERIC --->PROC FREQ:: BOTH CHARACTER AND NUMERIC --->PROC MEANS:: NUMERIC --->PROC UNIVARIATE:: NUMERIC --->PROC SUMMARY:: NUMERIC EG1: PROC PRINT DATA=SASHELP.CLASS; WHERE NAME IS MISSING; RUN; EG2: PROC PRINT DATA=SASHELP.CLASS NOOBS ; WHERE SEX IS MISSING; RUN; ---> PROC MEANS ::: IT WILL GIVE THE "SUMMARY STATISTICS FOR ALL NON MISSING                          NUMERIC VARIABLES" SYNTAX :: PROC MEANS DATA=XXXX.YYY; RUN; OPTIONS :::: ---VAR    ---N  ---MEAN   ---STANDARD DEVIATION(STD)   --MIN   --MAX...

6.SUBSETTING OBSERVATIONS AND VARIABLES

                 SUBSETTING/CONTROLLING OBSERVATIONS AND VARIABLE FOR OBSERVATIONS:::TO SUBSET OBSERVATION THERE ARE STATEMENTS LIKE           1.WHERE   2.IF THEN    3.IF THEN ELSE   4.FIRST OBS AND OBS   5.FIRST. AND LAST.      ETC FOR VARIABLES::::TO SUBSET VARIABLES THERE ARE STATEMENTS LIKE         1.KEEP:INCLUDING THE VARIABLES 2.DROP:EXCLUDING THE VARIABLES  1. WHERE:  -->WE CAN USE CHARACTER AND NUMERIC DATA  -->WHERE DATA WILL BE 'CASE SENSITIVE'(A a)  -->FOR CHARACTER OBSERVATION NEED '    '  (QUOTES)  -->FOR NUMERIC NO NEED TO GIVE ANY QUOTES  --> WHERE STATEMENT WILL WORK IN 'DATA' STEP AND 'PROC'STEP*/; EG1: DATA SAS; SET SASHELP.CLASS; WHERE SEX='M'; RUN; PROC PRINT DATA=SAS; RUN; --->WHERE STATEMENT IS CASE SENSITIVE SO IF ANY CASE SENSITIVE CODE IN SYNTAX IT WILL SHOW...

5.IMPORT AND EXPORT OF DATASETS IN SAS

Image
  PROC PRINT:: -->FOR TO PRINT THE ALL OBSERVATIONS AND VARIABLES FROM DATASETS -->TO GET THE OUTPUT RESULTS OF DATASET DATA SAS; SET SASHELP.CLASS; RUN; PROC PRINT DATA=SAS; RUN; OPTIONS USED IN PROC PRINT ::: --VAR:: INCLUDING THE VARIABLES --NOOBS:: REMOVE/SUPPRESS THE OBSERVATIONS COUNT NUMBER --WHERE::TO SUBSET THE OBSERVATIONS --TITLE::TO ENHACE THE DATASETS --FOOTNOTES::TO ENHANCE THE DATASETS --LABELS:;TO ENHANCE THE DATASETS --FORMATS::TO CONTROLLING THE VALUES IN DATASETS EG: PROC PRINT DATA=PROG1.COUNTRY;        RUN; USING OF 'VAR' STATEMENT :: EG1: PROC PRINT DATA=SASHELP.CLASS; VAR AGE NAME; RUN; EG2: PROC PRINT DATA=SASHELP.CLASS; VAR SEX; RUN; FOR SUPPRESSING/ELIMINATING THE OBSERVATIONS NUMBER*/ -->USE 'NOOBS' OPTION PROC PRINT DATA=SASHELP.CLASS NOOBS; VAR AGE NAME; RUN; PRINTING THE VAR BY USING ONE STARTING LETTER :: WE CAN ALSO USE ONLY ONE LETTER OF VARIABLES IN THE SYNTAX EG1: PROC PRINT DATA=SASHELP.CLASS; VAR W:  ; RUN; EG2:...

4.CREATING NEW DATASETS

Image
       CREATING NEW DATASETS 1.DATA AND SET METHOD :: ACCESSING THE EXISTING LIB AND DATASET 2.DATA INPUT AND DATALINES/CARDS METHOD :: FOR CREATING THE OWN DATASET 3.DATA INFILE AND INPUT METHOD :: EXTERNAL FILES INTON SAS DATASET 1.DATA AND SET METHOD :: ACCESSING THE EXISTING LIB AND DATASET DATA RAMU;   SET SASHELP.CLASS; RUN; DATA RAMU01; SET WORK.RAMU; RUN; /*IF YOU ARE USING ONLY DATA STEP::: STORE IN THE WORK LIB*/ /*IF YOU ARE USING DATA STEP AND PROC PRINT STEP:: STORE IN LIBRARY AND GIVE OUTPUT IN OUTPUT WINDOW*/ /*TO CREATE THE OUTPUT OR PRINTING THE ALL OBSERVATIONS  AND VARIABLES FROM THE DATASET*/ /*----USE "PROC PRINT" */ /**/ /*SYNTAX::*/ /**/ /*PROC PRINT DATA=XXXX(LIB).YYYY(DSN);*/ /*RUN;*/ DATA RAMU01; SET WORK.RAMU; RUN; PROC PRINT DATA=WORK.RAMU01; RUN; /**/ /*--TO CONTROL THE VARIABLES IN PROC PRINT*/ /*    **USE "VAR(VARIABLE)" STATEMENT */ /*TO SUPRESS/REMOVE THE OBS NUMBER::: USE "NOOBS" OPTION*/ PROC PRINT DATA=WORK.RAM...