From: montura on
If you need to maintain one-per-subject integrity for subsequent
operations, SCL object arrays are the only option.

First you have to declare an object with a three dimensional array:
dcl num data [*,*,*];

Then identify the max elements for each dimension.
data=makearray(500,4, 1000); 500 subjects, 4 visits, 1000 records max
per subject*visit.

Load the arrays with SCL GETVARC GETVARN statements.
Then you can spin through and slice-and-dice.

So maybe the real question is more like "should you use arrays" for
that purpose?

From: Al on
On May 13, 8:43 am, montura <montura...(a)gmail.com> wrote:
> If you need to maintain one-per-subject integrity for subsequent
> operations, SCL object arrays are the only option.
>
> First you have to declare an object with a three dimensional array:
>     dcl num data [*,*,*];
>
> Then identify the max elements for each dimension.
> data=makearray(500,4, 1000); 500 subjects, 4 visits, 1000 records max
> per subject*visit.
>
> Load the arrays with SCL GETVARC GETVARN statements.
> Then you can spin through and slice-and-dice.
>
> So maybe the real question is more like "should you use arrays" for
> that purpose?

All:

I was able to get this using arrays ,but what i meant is to mimic
the following code using arrays ..i.e to get the vis data values as
columns .. and values of res under these columns ....

proc transpose data = have out = trans;
by pat ;
var res;
id vis;
run
;
I appreciate your help ..

Thanks
Al