## Pull unique value from a dataset

Hi, I am trying to assign a value to a proc iml input from my datatset.

proc iml;
NumWalks = 100;
NumSteps = 52;
Mean = 0.003;
SD = 0.03;

I want to assign mean and std from dataset of another table

STOCKNAME     MEAN     STD

A                          0.003     0.034

B                          0.006     0.05

How can I pull the mean and std value from the other dataset?

1 ACCEPTED SOLUTION

Accepted Solutions  Ksharp
Super User

## Re: Pull unique value from a dataset

data have;
input STOCKNAME \$ MEAN STD;
cards;
A 0.003 0.034
B 0.006 0.05
;

proc iml;
use have ;
read all var{STOCKNAME MEAN STD} ;
close;

NumWalks = 100;
NumSteps = 52;
Mean = MEAN;
SD = STD;

x = j(NumSteps, NumWalks);
call randseed(1234);
call randgen(x, "Normal", Mean, SD);

y = j(NumSteps, NumWalks);

z = x + y;

do i = 1 to NumWalks;
z[,i] = cuprod(z[,i]);
end;
create t1 from z[colname='COL']; append from z;
quit;
5 REPLIES 5  Ksharp
Super User

## Re: Pull unique value from a dataset

Hard to understand what you are trying to do ?

data have;
input STOCKNAME \$ MEAN STD;
cards;
A 0.003 0.034
B 0.006 0.05
;

proc iml;
use have ;
read all var{STOCKNAME MEAN STD} ;
close;
Mean = MEAN;
SD = STD;

print mean sd;
quit;

## Re: Pull unique value from a dataset

Thank you. I am trying to create a table where the mean and SD will vary as per the input table.

proc iml;
NumWalks = 100;
NumSteps = 52;
Mean = 0.003 (want to pull this value from have for next steps);
SD = 0.03 (want to pull this value from have for next steps);

x = j(NumSteps, NumWalks);
call randseed(1234);
call randgen(x, "Normal", Mean, SD);

y = j(NumSteps, NumWalks);

z = x + y;

do i = 1 to NumWalks;
z[,i] = cuprod(z[,i]);
end;
create t1 from z[colname='COL']; append from z;
quit;

data t2;
WEEK = _N_;
set t1;
run;  Ksharp
Super User

## Re: Pull unique value from a dataset

data have;
input STOCKNAME \$ MEAN STD;
cards;
A 0.003 0.034
B 0.006 0.05
;

proc iml;
use have ;
read all var{STOCKNAME MEAN STD} ;
close;

NumWalks = 100;
NumSteps = 52;
Mean = MEAN;
SD = STD;

x = j(NumSteps, NumWalks);
call randseed(1234);
call randgen(x, "Normal", Mean, SD);

y = j(NumSteps, NumWalks);

z = x + y;

do i = 1 to NumWalks;
z[,i] = cuprod(z[,i]);
end;
create t1 from z[colname='COL']; append from z;
quit;

## Re: Pull unique value from a dataset

Thank you. Got my final result.

## Re: Pull unique value from a dataset

Please explain further. Show us examples of the input table(s) and the desired output.

--
Paige Miller
From The DO Loop