Calcite | Level 5

## Need Help on Using Countif in SAS

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.

PS I use SAS Academics On-Demand.

1 ACCEPTED SOLUTION

Accepted Solutions
Super User

## 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;

```
6 REPLIES 6
Super User

## 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.

Calcite | Level 5

Thank you!
Super User

## 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;

```
Calcite | Level 5

Thank you!

Super User

## 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;

Calcite | Level 5

## Re: Need Help on Using Countif in SAS

Thank you

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