DATA Step, Macro, Functions and more

Domain analysis SAS Enterprise Guide 5.1

Occasional Learner NML
Occasional Learner
Posts: 1

Domain analysis SAS Enterprise Guide 5.1

I have posted this previously but unfortunately my account got scrambled and I have had to start again. I need to do a domain analysis of some data.


Outdoor Team Non-team Leisure Domestic

    15          5           0             0            25

     60         0           25           10           0

     0           25         30            0            0


I need to show the proportions each of these contribute to the whole so results should look like this

Outdoor  10%

Team       25%

Non Team  45%

Leisure     15%

Domestic   5%


I have on previous suggestion tried proc iml


proc iml;

use domains;

read all var _num_ into x[c=vname];




print (t(vname)) ratio[f=percent8.2];



but I got this message in the log



115 proc iml;


116 use domains;

117 read all var _num_ into x[c=vname];

118 close;



120 ratio=t(x[+,]/sum[,ncol(x)]);

ERROR: (execution) Matrix has not been set to a value.

operation : [ at line 120 column 18

operands : sum, , _TEM1002

sum 0 row 0 col (type ?, size 0)


_TEM1002 1 row 1 col (numeric)


statement : ASSIGN at line 120 column 1


122 print (t(vname)) ratio[f=percent8.2];

ERROR: Matrix ratio has not been set to a value.

statement : PRINT at line 122 column 1

123 quit;

NOTE: Exiting IML.


I really don't understand this procedure at all so have no idea how to fix it.


Can anyone help?



Super User
Posts: 13,950

Re: Domain analysis SAS Enterprise Guide 5.1

You will get much better answers if you provide an actual example of data and the output for that example data.

Instructions here: will show how to turn an existing SAS data set into data step code that can be pasted into a forum code box using the {i} icon or attached as text to show exactly what you have and that we can test code against.


In your "result" you are showing percentages but not defining what the numerator or denominator should be, or even what the values in the input mean. Are they counts and you want a percentage of total counts across topics or what?


Very likely what you want to transpose the data so that you do not have separate columns for each variable but something that looks like

Domain    value

Outdoor   15

Outdoor   60

Outdoor   0

Team       5

Team       0



Then you may be able to get the desired percentages (depends on what the numerators and denominators are) with Proc Freq, Tabulate or Report.

Ask a Question
Discussion stats
  • 1 reply
  • 2 in conversation