Hi everyone,
I've searched the resources on Mata for a while and haven't found a solution yet. Here's the issue I'm having: I've created a matrix of 0's (in the example below, it's a matrix with 20 rows and 6 columns) and want to replace the 0's with 1's based on elements of another matrix (called combn_mat in the code below). Eventually, I will write a loop to go through each row of the selecting matrix (combn_mat) and select those column from the first matrix (called pmt in the example) with that index and replace them with 1's.
So, for example:
Thus, in this simple example, I'd like to replace columns 1, 3, 6 in row 7 in matrix pmt with 1's. However, I'm stuck at the point of getting the (1,3,6) into a form that the subset brackets will recognize (i.e., 1,3,6). Thanks in advance for your help! I am using Stata version 14.1.
John
I've searched the resources on Mata for a while and haven't found a solution yet. Here's the issue I'm having: I've created a matrix of 0's (in the example below, it's a matrix with 20 rows and 6 columns) and want to replace the 0's with 1's based on elements of another matrix (called combn_mat in the code below). Eventually, I will write a loop to go through each row of the selecting matrix (combn_mat) and select those column from the first matrix (called pmt in the example) with that index and replace them with 1's.
So, for example:
Code:
. mata: ------------------------------------------------- mata (type end to exit) ----------------------------------------------------------------------------------------------------------------------------------------------------- : x=comb(6,3) : pmt=J(x,6,0) : pmt 1 2 3 4 5 6 +-------------------------+ 1 | 0 0 0 0 0 0 | 2 | 0 0 0 0 0 0 | 3 | 0 0 0 0 0 0 | 4 | 0 0 0 0 0 0 | 5 | 0 0 0 0 0 0 | 6 | 0 0 0 0 0 0 | 7 | 0 0 0 0 0 0 | 8 | 0 0 0 0 0 0 | 9 | 0 0 0 0 0 0 | 10 | 0 0 0 0 0 0 | 11 | 0 0 0 0 0 0 | 12 | 0 0 0 0 0 0 | 13 | 0 0 0 0 0 0 | 14 | 0 0 0 0 0 0 | 15 | 0 0 0 0 0 0 | 16 | 0 0 0 0 0 0 | 17 | 0 0 0 0 0 0 | 18 | 0 0 0 0 0 0 | 19 | 0 0 0 0 0 0 | 20 | 0 0 0 0 0 0 | +-------------------------+ : combn_mat=mm_subsets(6,3)' : : combn_mat 1 2 3 +-------------+ 1 | 1 2 3 | 2 | 1 2 4 | 3 | 1 2 5 | 4 | 1 2 6 | 5 | 1 3 4 | 6 | 1 3 5 | 7 | 1 3 6 | 8 | 1 4 5 | 9 | 1 4 6 | 10 | 1 5 6 | 11 | 2 3 4 | 12 | 2 3 5 | 13 | 2 3 6 | 14 | 2 4 5 | 15 | 2 4 6 | 16 | 2 5 6 | 17 | 3 4 5 | 18 | 3 4 6 | 19 | 3 5 6 | 20 | 4 5 6 | +-------------+ : : y=combn_mat[7,] : y 1 2 3 +-------------+ 1 | 1 3 6 | +-------------+ : : pmt[7,y]=1 <istmt>: 3301 subscript invalid (1 line skipped) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- r(3301);
John
Comment