I have to guess that Anne is confused about some aspect of that report.
As you say, that part of the code sounds fine -- although note that Anne does not report the exact code she used for -max()-.
In addition, there is no way that I can see that -egen, rowtotal()- could be used to give the maximum of three scalars even if that -egen- function did accept scalars.
Nick
[email protected]
Martin Weiss
True! But what is your explanation for the failure of the -max()- function then? Seems to work fine...
*************
scalar m_108 =2.33
scalar m_109 =3.4
scalar m_1010 =1.2
di max(m_108, m_109, m_1010)
*************
Nick Cox
Martin's guess is not to the point here. As Anne's code given earlier in the thread does show, she is using (permanent) names like m_108 for scalars, and not locals.
The problem, already explained by Kit Baum (in the posting being replied to here) and also by myself, is that -egen, rowtotal()- does not accept scalars as arguments. It only feeds on variables. To spell it out once more: scalars in Stata are not variables.
Martin Weiss
Let me guess, you never dereferenced the -local-s for the -max- calculation? Note the difference here:
*************
local m_108 2.33
local m_109 3.4
local m_1010 1.2
//with dereferencing
di max(`m_108', `m_109', `m_1010')
//w/o dereferencing
di max(m_108, m_109, m_1010)
*************
Anne Resende
Thanks for your response.
I am a beginner in stata programming but my aim is to create a “mean”
of the variable logwage to after run the bootstrap.
So when I use rowmax( ) I expect the program to calculate the maximum
of the value of the variables in parenthesis. For each `s’ I need the
maximum value between the `sp’ numbers.
For example: m_108 = 2.33
m_109 = 3.4
m_1010= 1.2
So I want the program to return de value 3.4. When I use the function
max the program returns me the value of m_1010 because it is
considering the max between the values 108, 109, 1010.
So after the program calculate the maximum value within it m_`s’`sp’ ,
I trying to use the rowtotal( ) to sum all of the maximum values and to
end up with just one variable.
Kit Baum wrote:
>egen rowmax() and rowtotal() are meant to be used with more than one
>variable (rather than a scalar) as an argument.
>
> qui egen `exem_`s''=rowmax(m_`s'`sp')
>
>if m_`s'`sp' is a scalar, its rowmax or rowtotal is itself--a constant
>value for each row (observation). What are you trying to do?
*
* 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/