BookmarkSubscribeRSS Feed
NVN
Fluorite | Level 6 NVN
Fluorite | Level 6

Please help me to find the  missing values across raw with 2D array.

 

Dataset Name : "Subset .csv ";  Missing values:" NA"

 

       i_Day5   Day6           Day7         City1           City2       City3

1      Fridat    NA               NA            NA               Delhi        Mumbai

2      NA         NA               NA            NA               NA           NA

3      Friday   NA                NA           NA               NA            NA

4      Friday   Saturday      NA            Bangalore   NA           NA

5      NA         NA               NA            NA               Delhi       NA

6      Friday    Saturday     Sunday    BAngalore   NA           NA

7      NA          NA              NA            NA               Delhi       NA

8      NA          NA              NA            NA               Delhi       NA

9      NA          NA              NA            NA               NA           NA

10    Friday    Saturday     NA            NA               NA          NA

 

 

The code that am stuck with is:

 

Proc import datafile="P\A\T\H.csv"

dbms=csv  out=Subset;

run;

data subset;

set subset;

array Miss{2,10}i_Day5 Day6 Day7 City1--City3;

do i=1 to 2;

do J=1 to 10;

if Miss{i,j}="NA" then /*???????????*/;

end;

end;

Proc print data=Subset;

run;

 

Plese help  me to  compleate this problem...

5 REPLIES 5
Kurt_Bremser
Super User

You have defined an array with 20 elements for only 6 variables.

Your condition for finding the 'NA' values is correct, but you've never stated what should happen with those values, so we can't really help you here.

NVN
Fluorite | Level 6 NVN
Fluorite | Level 6

The output  that am looking is,  a  7th varable " No_of_Miss"  that contain the number of missing values(number of "NA") of each raws. Like...  Number of "NA" in the 1st raw  as the 1st  observation of "No_of_Miss",  number of "NA" in the 2nd raw as the second obsercation on"No_Of_Miss"....etc up  to  10th raw. please help me sir.

Reeza
Super User

This is homework so I don't usually post answers. I'll post helpful links and gladly help you debug code, but giving you the answer isn't going to help you or me in the long run. 

 

1. How do you declare an array?

2. How do you loop through an array?

3. How do you count/increment a count. 

 

Those were all covered in the link I posted AND I posted skeleton code that you haven't attempted to use so far.  I'm not really sure what else I can help you with at this point. 

RW9
Diamond | Level 26 RW9
Diamond | Level 26

Post test data in the form of a datastep!!!

 

From what you have posted I cannot tell what you are trying to do, do you want to count the number of NA per column or per row or across the whole data?  If it is by column, then:

proc sql;
  create table WANT as
  select count(case when I_DAY5="NA" 1 else 0 end) as I_DAY5_COUNT
...
quit;

If its by row then you only need to array across the columns you have.

And if its across all data, then transpose the data you have (normalise is) so there is only one column of all the day values and then count.

 

If you provide the information needed - test data in the form of a datastep, and what the output should look like, then we can provide further code.

Reeza
Super User

Read the link I posted. 

 

Since you're new to SAS, it's most likely you're working with the basics of arrays. An Array is only a shortcut to list variables and primarily only references values in a specific row. SAS operates by processing one row of data at a time. So the 10 in your array does not reference the number of rows. I posted how to declare the array in your previous question. Also, note than an array can have only one type of variables included in the list - character or numeric. 

 

 

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!

SAS Enterprise Guide vs. SAS Studio

What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.

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
  • 5 replies
  • 791 views
  • 0 likes
  • 4 in conversation