Posts

Showing posts with the label SAS Arrays

PROC TRANSPOSE: How to Convert Variables(columns) into Observations(ROWS) and Observations(ROWS) into Variables(Columns)

Image
During my early days as a SAS programmer, I used to get confused which statement in PROC TRANSPOSE used for what and why? PROC TRANSPOSE syntax looks like a straightforward thing, but we need to look at important details it offers and without that we may get unexpected results. Proc Transpose Options: Proc Tranpose offers several options like OUT=, LABEL=, NAME=, and PREFIX=. Each option is distinct from the others. "OUT=" option assigns an output dataset, "LABEL=" option assigns a nemae to the variable which has the label of the transposed variable. If we don’t use "LABEL=" option in the PROC TRANSPOSE syntax, the defalut “_LABEL_” will be assigned to the variable that is being transposed. "NAME= " option works same as the "LABEL=" option, as if we use NAME=option in the TRANSPOSE syntax, which will assign the name to the variable that is being tranposed. There is another option that we can use in the TRANSPOSE syntax that ...

Change all missing values of all variables into zeros/putting zeros in place of missing values for variables

Have you been asked how to convert missing values for all the variables into zeros..... if you are.... here is the answer for that..... In this example the I have used array to do the same. The variable list includes ID and Score1 to score6.Using simple array method we can change all the missing value for the variables score1 to score6 to 0. data old; input ID SCORE1 SCORE2 SCORE3 SCORE4 SCORE5 SCORE6; cards; 24 100 97 . 100 85 85 28 . 87 98 100 . 90 60 100 . . 100 100 100 65 100 98 100 . 90 100 70 99 97 100 100 95 100 40 97 99 98 . 100 95 190 100 . 97 100 100 90 196 100 100 . 100 100 100 210 . 85 . 90 80 95 ;   run ; *Ist Method; data new; set old; array zero score1-score6; do over zero; if zero=. then zero=0 ; end ; run ; *2nd Method; data new; set old; array nums _numeric_; do over nums ; if nums=. then nums=0 ; end; run ; proc print; Title 'Missing values changed to zero using arrays and a do loop' ; run ; Output: I...