dear R experts---I was programming a fama-macbeth panel regression (a
fama-macbeth regression is essentially T cross-sectional regressions, with
statistics then obtained from the time-series of coefficients), partly
because I wanted faster speed than plm, partly because I wanted some
additional features.

my function starts as

fama.macbeth <- function( formula, din ) {
   names <- terms( formula )
  ## omitted : I want an immediate check that the formula refers to
existing variables in the data frame with English error messages
   monthly.regressions <- by( din, as.factor(din$month), function(dd)
coef(lm(model.frame( formula, data=dd )))
   as.m <- do.call("rbind", monthly.regressions)
   colMeans(as.m)  ## or something like this.
}

say my data frame mydata has columns named month, r, laggedx and ... .  I
can call this function

   fama.macbeth( r ~ laggedx, din=mydata )

but it fails if I want to compute my x variables.  for example,

   myx <- d[,"laggedx"]
   fama.macbeth( r ~ myx)

I also wish that the computed myx still remembered that it was really
laggedx.  it's almost as if I should not create a vector myx but a data
frame myx to avoid losing the column name.  I wonder why such vectors don't
keep a name attribute of some sort.

there is probably an "R way" of doing this.  is there?

/iaw

----
Ivo Welch (ivo.welch@gmail.com)

	[[alternative HTML version deleted]]

