[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

From |
"R.E. De Hoyos" <[email protected]> |

To |
<[email protected]> |

Subject |
st: Re: Re: replacing a scalar from mat |

Date |
Wed, 13 Jul 2005 02:29:42 +0300 |

Michael,

Thanks for your answer.

Your suggestion works fine. However I still face the row and column name problem when I try to replace a the scalar (or 1x1 matrix) into another vector. I should've explained myself better. The problem is the following. Consider:

reg z1 x1 x2

mat A=e(b)

reg z2 x1 x2

mat B=e(b)

I want to know how much of the difference between z1 and z2 is explained by the difference in parameter x2 (a similar exercise like the Oaxaca decomposition). Therefore I get the parameter of x2 from mat A:

mat X2 = A["y1","x2"]

The second step is to replace this scalar (or 1x1 matrix) into mat B. To do so, I have to let Stata know the name of the variable--column--in mat B that has to be replaced with mat X2. My first though would be:

mat B["y1","x2"] = X2["y1","x2"]

However this syntax is not valid. The second thing I tried--following your advice--was to create a scalar from X2:

scalar x2 = X2[1,1]

Again I tried to replace mat B with scalar x2:

mat B["y1","x2"] = x2

And it didn't work either. To replace an element of a matrix you have to use numbers of rows and columns a not the names of them (mat B[1,2] = x2 works fine). Perhaps there is a strong reason for that but I cannot see it. In any case the problem was solved by assigning a number to each element of the independent variables:

local indv x1 x2

local i=1

foreach k in `indv' {

local `k' = `i'

local i=`i'+1

}

mat X`x1' = A[1,`x1']

mat B[1,`x1'] = X`x1'

I still wonder why Stata does not accept rows and columns names?

Best regards,

Rafa

----- Original Message ----- From: "Michael Blasnik" <[email protected]>

To: <[email protected]>

Sent: Tuesday, July 12, 2005 9:33 PM

Subject: st: Re: replacing a scalar from mat

If you know that you are only extract one row and column, why not

mat B = e(b)

mat B1 = B["y1","eq1:x1"]

scalar s=B1[1,1]

Michael Blasnik

[email protected]

----- Original Message ----- From: "R.E. De Hoyos" <[email protected]>

To: <[email protected]>

Sent: Tuesday, July 12, 2005 12:48 PM

Subject: st: replacing a scalar from mat

I am trying to get a scalar from a matrix (vector). Within a multiple equations framework (-mlogit-) I want to get one of the parameters estimated. After running -mlogit- I tried the following:

mat B = e(b)

scalar s = B["y1","eq1:x1"]

The following error appears:

matrix operators that return matrices not allowed in this context

r(509);

However if I try one of the following, there is no error reported:

mat A = B["y1","eq1:x1"]

scalar s = B[1,1]

Using the rows and columns names of the matrix is important since these scalars will be replaced into a second vector of estimated parameters.

Thanks,

Rafa

* * For searches and help try: * http://www.stata.com/support/faqs/res/findit.html * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

* * For searches and help try: * http://www.stata.com/support/faqs/res/findit.html * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**References**:**RE: st: number of words in a text list***From:*"Nick Cox" <[email protected]>

**RE: st: number of words in a text list***From:*"Eric G. Wruck" <[email protected]>

**st: replacing a scalar from mat***From:*"R.E. De Hoyos" <[email protected]>

**st: Re: replacing a scalar from mat***From:*"Michael Blasnik" <[email protected]>

- Prev by Date:
**RE: st: Pairplot markersymbol question** - Next by Date:
**st: J. Scott__spost9_ado** - Previous by thread:
**st: Re: replacing a scalar from mat** - Next by thread:
**st: poverty decomposition using povdeco command** - Index(es):

© Copyright 1996–2024 StataCorp LLC | Terms of use | Privacy | Contact us | What's new | Site index |