Statalist


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

Re: st: Function el() fails


From   "Sergiy Radyakin" <[email protected]>
To   [email protected]
Subject   Re: st: Function el() fails
Date   Sun, 17 Aug 2008 17:45:25 -0400

Thank you, Scott,

this was helpful. Perhaps the only wish I have now is to have more
meaningful error messages, e.g. instead of  "type mismatch" the Ideal
Stata might have responded: "Type mismatch in expression el(p,1,1),
expected argument of type: matrix, found argument of type: variable".

But may be I am too spoiled by modern days compilers, that try to help
programmers every step of the way.

Best regards,
    Sergiy Radyakin





On 8/15/08, Scott Merryman <[email protected]> wrote:
> You could use the pseudofunction -matrix()- to force the term p to be
> interpreted as a matrix (see [P] page 262, "Name conflicts in
> expressions (namespaces)"  and G Kolev's "Stata tip 31: Scalar or
> variable?  The problem of ambiguous names", SJ 6,2).
>
>    dis el(matrix(p),1,1)
>
> Scott
>
>
> On Fri, Aug 15, 2008 at 4:54 PM, Sergiy Radyakin <[email protected]> wrote:
> > Dear All,
> >
> > after investigating why my program sometimes breaks, I have found a
> > problem (observed in Stata 9 and Stata 10 for Windows) with the
> > function el(matrixname, row, col ), which could be reproduces with the
> > following sequence of commands:
> >
> >
> > // ----- BEGIN -------
> >   sysuse auto
> >
> >   matrix p=1
> >   matrix a=p
> >
> >   matrix dir
> >
> >   matrix list a
> >   di a[1,1]
> >   di el(a,1,1)
> >
> >   matrix list p
> >   di p[1,1]
> >   di el(p,1,1)
> > // ----- END -------
> >
> > According to the help file for Stata 9:
> >
> >  el(A,i,j)       the i,j element of A (same as A[i,j])
> >
> > Note that the program above works for matrix name "a" and not "p".
> > This made it difficult to identify the problem. Because the problem is
> > observed for some datasets and not for others.
> >
> > It seems that the namespace of variables and matrix names in Stata is
> > overlapping.
> > I've met the messages earlier regarding what namespaces are shared,
> > but I can't find them at the moment. The manual explicitly defines the
> > term "namespace" in the [P] matrix, (page 235 in 10th edition). It
> > also mentions that there is a single namespace for scalars and
> > matrices, however it does mention variables in a rather confusing
> > statement:
> >
> > "Scalars and matrices share the same namespace; i.e., scalars and
> > matrices may have the same names as variables in the dataset, etc.,
> > but they cannot have the same names as each other."
> >
> > Confusion here is that indeed Stata allows me to have a matrix with
> > the same name as a variable, but I'd really like the built-in commands
> > and functions to be able to WORK with that matrix. (Function el() as
> > all functions in Stata is built-in).
> >
> > I wonder if anyone could elaborate on which namespaces are shared in
> > Stata, in particular:
> >
> > variables
> > locals
> > globals
> > scalars
> > matrices
> > programs
> > classes
> > all sort of mata objects
> > all sort of graphics related styles, patterns, etc
> > ....
> > [not sure how long the list is, but the above list is definitely not complete]
> >
> > I am not sure that the problem above is an intended behavior. In any
> > case it makes the case that el(a,1,1) is NOT equivalent to A[1,1]
> > against what the help file says.
> > If this is not an intended behaviour, can this be fixed?
> >
> > Thank you,
> > Sergiy Radyakin
> >
> > CC: Stata Technical Support
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
>
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



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