## Multiple Array in SAS

Solved
Occasional Contributor
Posts: 14

# Multiple Array in SAS

Hi.

I need to create a multiple array (81,81).

I've 3 columns in my data. 1st and 2nd column values ranges from 1 to 81 (these are codes for Provinces) and the 3rd column shows the distance between these provinces. The data structure is like:

A     B     C

1     2     200

1     3     500

.     .     .

1     81     300

2     1     100

2     3     250

.     .     .

81     80     1000;

I need to create an array/table/matrix which is 81 by 81 and shows the distance (3rd column value) between these provinces (1st and 2nd columns values).

Accepted Solutions
Solution
‎07-31-2014 06:15 AM
Super User
Posts: 9,599

## Re: Multiple Array in SAS

Hi,

Try transpose:

data have;
infile datalines;
input a b c;
datalines;
1 2 200
1 3 30
1 5 23
2 1 27
2 4 8
2 5 90
;
run;

proc sort data=have;
by a b c;
run;
proc transpose data=have out=want (drop=_name_) prefix=B;
by a;
var c;
id b;
idlabel b;
run;

The above will create Bx variables for each unique occurrence of a value in B.

All Replies
Solution
‎07-31-2014 06:15 AM
Super User
Posts: 9,599

## Re: Multiple Array in SAS

Hi,

Try transpose:

data have;
infile datalines;
input a b c;
datalines;
1 2 200
1 3 30
1 5 23
2 1 27
2 4 8
2 5 90
;
run;

proc sort data=have;
by a b c;
run;
proc transpose data=have out=want (drop=_name_) prefix=B;
by a;
var c;
id b;
idlabel b;
run;

The above will create Bx variables for each unique occurrence of a value in B.

Posts: 3,852

## Re: Multiple Array in SAS

Shouldn't the distance between a=1 and b=2 be the same as a=2 and b=1?

Occasional Contributor
Posts: 14