[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

AW: st: re: Programming stata using egen functions

From   "Martin Weiss" <>
To   <>
Subject   AW: st: re: Programming stata using egen functions
Date   Tue, 28 Apr 2009 15:18:48 +0200


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)


-----Ursprüngliche Nachricht-----
Von: [] Im Auftrag von Nick Cox
Gesendet: Dienstag, 28. April 2009 15:15
Betreff: RE: st: re: Programming stata using egen functions

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:

*   For searches and help try:

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