Help using Base SAS procedures

A Proc Tabulate question

Reply
Frequent Contributor
Posts: 107

A Proc Tabulate question

Hi,

I grew to like using proc tabulate for output tables, but sometimes it's hard to follow the logic.

Say if I want to run a crosstab of health condition by sex (so column %) for each year and each country. I tried the following but it's giving me the column percent across all cases, not within a country and for each year. How do I change the? I didn't make a sample data but if needed, I could do it.

proc tabulate data=have;

    class country year heath_status sex;

    table (country year _status), sex* COLPCTN;

    run;

Many thanks.

Super User
Posts: 10,020

Re: A Proc Tabulate question

What does your data look like ? Maybe you need :

table (country year _status), sex* COLPCTN   all*COLPCTN  ;

SAS Super FREQ
Posts: 8,864

Re: A Proc Tabulate question

Hi:

  I see that your TABLE statement doesn't have any * (asterisk) operators. Also, you show health_status in the CLASS statement, but then use _status in the TABLE statement. Does your code even produce output? Do you have error messages in the LOG that _status is not defined?

  You can define special denominators for percents using the < and > operators. Generally, you use them in conjunction with nesting using the * operator. The TABULATE documentation has some examples of using a special denominator definition.

Base SAS(R) 9.3 Procedures Guide, Second Edition

cynthia

Ask a Question
Discussion stats
  • 2 replies
  • 148 views
  • 0 likes
  • 3 in conversation