BookmarkSubscribeRSS Feed
najiah
Calcite | Level 5

In the data below, the Likert scale should be in the range of 1-4.

Therefore, I would like to recode the answer 5 to '.'

But it did not succeed.

Then, how can I delete the question that consisted of missing value in SAS?

The actual data could be find the attachment (DAT file)

The editor that I wrote:

DATA example;

INFILE 'C:\Users\nadzatul.abdullah\Documents\My SAS Files\9.3\example.dat' DLM = '09'x DSD;

INPUT  Q1 Q2;

MISS =5;

ARRAY vv(2) Q1 Q2;

DO i=1 TO 2;

IF vv(i)=. THEN DO;

MISS=99 ;

i= 2;

END;

END;

RUN;

PROC FREQ;

WHERE miss =5;

TABLES Q1 Q2 ;

RUN ;

PROC PRINT DATA = example;

TITLE 'example';

RUN;

The output looks like this:

Thank you

3 REPLIES 3
Astounding
PROC Star

It's not entirely clear what you are trying to achieve, but it will be easy no matter what.  If you really wanted to delete observations, use a DELETE statement.  You don't need values of 5 or 99 to do this:

if q1=. then delete;

if q2=. then delete;

You could always incorporate this into the array logic that you are using now if you have many variables.

If you don't want to delete, but merely want to omit some observations from analysis, you could try a WHERE statement:

proc freq;

   tables q1 q2;

   where n(of q1-q2)=2;

run;

najiah
Calcite | Level 5

thank you for your help, It works!

Tom
Super User Tom
Super User

Sounds from the words like you just want to convert the 5's to missing values.  I am not sure what the 99's have to do with it.

For your simple example you just want something like this.

data want ;

infile 'example.dat';

input q1 q2 ;

if q1=5 then q1=.;

if q2=5 then q2=.;

run;

If you want to distinquish the "5" values from the actual missing values then use one of SAS special missing values instead.

data want ;

infile 'example.dat';

input q1 q2 ;

if q1=5 then q1=.M;

if q2=5 then q2=.M;

run;

To see the result use the MISSPRINT option on PROC FREQ.

proc freq ;

tables q1 q2 / missprint;

run;

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 3 replies
  • 762 views
  • 2 likes
  • 3 in conversation