Obsidian | Level 7

## Creating variable with a name containing value of a different variable for an observation

Let's say I have a two columns, 1 with a bunch of names, and another with a bunch of dates:

```data out;
set in;
%let d=400;

array name{&d};
array indate{&d};
h=1;
do i=1 to &d;
if substr(name{i},1,4) in ("asdf", "jklo") then do;
eh&h=indate{i}
h=h+1;
end;
end;
run;```

This code is able to count the number of occurnaces of names "asdf" and "jklo" and set them for each observation as "h".

However, when I try to create the variable "eh&h" with &h to represent the h'th occurance of the names, it doesn't work.

How can I make it so the variable names created to set as indate contains the value of h for a given observation?

I tried even to create an array using the dimension of maximum number of h's in the dataset, but that didn't work either (and may have been the wrong idae). So i come here to see if there's something i'm just missing.

1 ACCEPTED SOLUTION

Accepted Solutions
Obsidian | Level 7

## Re: Creating variable with a name containing value of a different variable for an observation

Solved it myself, here's the code:

```data out;
set in;
%let d=400;
%let e=50; *Max dimensions for the number of h's;

array name{&d};
array indate{&d};
array eh{&e};
h=1;
do i=1 to &d;
if substr(name{i},1,4) in ("asdf", "jklo") then do;
eh{h}=indate{i}
h=h+1;
end;
end;
run;```
Obsidian | Level 7

## Re: Creating variable with a name containing value of a different variable for an observation

Solved it myself, here's the code:

```data out;
set in;
%let d=400;
%let e=50; *Max dimensions for the number of h's;

array name{&d};
array indate{&d};
array eh{&e};
h=1;
do i=1 to &d;
if substr(name{i},1,4) in ("asdf", "jklo") then do;
eh{h}=indate{i}
h=h+1;
end;
end;
run;```
Discussion stats