Help using Base SAS procedures

Need Help on Using Countif in SAS

Accepted Solution Solved
Reply
New Contributor
Posts: 4
Accepted Solution

Need Help on Using Countif in SAS

Countif SAS.png

1 = Yes

0 = No

 

Given that I have the data set as shown, I'd like to accomplish the following tasks

 

1.) What is the percentage of the insured with high-school education have an accident?

Ans... 3/4 = 75%

 

2.) How many married insured have an accident?

Ans... 1/3 = 33%

 

It would be relatively simple in Excel. But I'm quite new to SAS.

 

Would you please help me?

 

PS I use SAS Academics On-Demand.


Accepted Solutions
Solution
‎07-24-2016 11:45 PM
Super User
Posts: 9,691

Re: Need Help on Using Countif in SAS

You'd better post your data as TEXT form. No one would like to type it for you .


data have;
input index accident married highschool;
cards;
1 1 0 1
2 1 0 1
3 0 1 1
4 0 1 0
5 1 1 1
;
run;
proc sql;
select sum(accident)/count(*) as per from have where highschool=1;
select sum(accident)/count(*) as per from have where married=1;
quit;


View solution in original post


All Replies
Super User
Posts: 17,959

Re: Need Help on Using Countif in SAS

Hmm...there's quite a few ways. What do you want your output to look like?

 

One quick way is proc freq.

 

 

proc freq data=have;
table accident*education; /*Question 1*/
table married*accident;/*Question 2*/
run;

You have to read the correct cell from the output. If you want something more specific you need to post more details on expected output as well as sample data. 

 

PS. Please post data samples as text, I won't type out your data to test any solution.

New Contributor
Posts: 4

Re: Need Help on Using Countif in SAS

Thank you!
Solution
‎07-24-2016 11:45 PM
Super User
Posts: 9,691

Re: Need Help on Using Countif in SAS

You'd better post your data as TEXT form. No one would like to type it for you .


data have;
input index accident married highschool;
cards;
1 1 0 1
2 1 0 1
3 0 1 1
4 0 1 0
5 1 1 1
;
run;
proc sql;
select sum(accident)/count(*) as per from have where highschool=1;
select sum(accident)/count(*) as per from have where married=1;
quit;


New Contributor
Posts: 4

Re: Need Help on Using Countif in SAS

Thank you!

Super User
Posts: 10,550

Re: Need Help on Using Countif in SAS

Here's something to think about with 0/1 coded variables as shown as long as they are actually numeric:

The SUM would give you the number of answers coded 1, Mean gives the percentage (though it will require either multiplication by 100 OR , much better, use of a SAS PERCENT format for display.

 

Yet another procedure:

proc tabulate data=have;

   var accident married HSEd;

   tables accident='Have an accident' married='Married?' HSED='High School Education' ,

              sum='Count'*f=best4. Mean='Percent'*f=percent8.0;

run;

New Contributor
Posts: 4

Re: Need Help on Using Countif in SAS

Thank you

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 6 replies
  • 563 views
  • 0 likes
  • 4 in conversation