I have two datasets. I am trying to get a new variable in the second dataset, which looks up the value from the dataset1.
The steps that I have to follow are:-
1) Make a matrix for dataset1
2) Compare the randomnumber value(in dataset2), to the values under the columns origin* in the matrix, so that, STATA starts looking at the column starting with the same origin* number as the oldau values in dataset2.
For example, if I take randomnumber value .955492, it should start looking in the dataset 1, for values under origin12, as this is what the corresponding oldau is in dataset2,
If I take randomnumber .018467158 then, it should start looking in the dataset1, for values under origin13, as this is what the corresponding oldau is in dataset2 and so on.
3) I have to then identify the value under the origin* columns, which is the immediate bigger than the randomnumber.
In the first example, it is 1 (under origin12)
In the second example, it is 0.09 (under origin13)
4)Then, I have to generate a new variable which corresponds to the bigger value identified, which is under the destination column in the dataset1.
In the first example, I have to get the return value 99, as the destination value corresponding to 1, is 99.
In the second example, I have to get the return value 11, as the destination value corresponding to 0.09, is 11.
5) I have to get all the return values in one new variable.
Dataset 1
Code:
* Example generated by -dataex-. To install: ssc install dataex clear input byte destinationau float(origin11 origin12 origin13 origin14) 11 0 .28 .09 .07 12 .34 .28 .33 .26 13 .56 .59 .33 .81 14 .66 .73 .7 .81 99 1 1 1 1 . . . . . end
Code:
* Example generated by -dataex-. To install: ssc install dataex clear input byte(oldau newau) float randomnumber 11 11 .795571 12 0 .955492 13 0 .018467158 14 14 .030028736 12 0 .5734589 12 0 .9656307 end
Any help will be appreciated.
0 Response to Using matrix as lookup table
Post a Comment