I love using David Hugh-Jones' `huxtable`

library in R. But I hate forgetting how to include math symbols in the resulting tables. Here's how to do it.

`huxtable`

library in R. But I hate forgetting how to include math symbols in the resulting tables. Here's how to do it.

This post translates the Stata code to calculate the standard error of the predictions contained in the document, How are average marginal effects and their standard errors computed by margins using the delta method? by Jeff Pitblado of StataCorp, into R code.

Because I am a ~~masochist~~perfectionist, I spent the better part my day making my R code more elegant. I figured out what to do with a simple loop, but wanted to write the code the *right* way. I always tell myself that the time I spend ~~torturing myself~~writing the right code will help me down the line so I know how to do it next time. I will inevitably forget and spend the same four hours doing the same thing again. As a gift to my future self, I decided that I would write down what I learned because it will likely come up again (you're welcome, future Mike!).

My basic problem comes from the desire to match two lists item-by-item. Python contains a function, `zip()`

, that does this. I want to figure out how to zip in R.

**tl;dr**: paste outcome and dependent variables into R's `as.formula()`

function to avoid typing the same models out repetitively.

R presents more of a challenge to Stata on many fronts, one of which is basic data management.

I often find myself calculating the value of one observation given the value of an adjacent value. For example, to assess a lagged effect, I would take the value of the preceding interval. Stata makes this really easy, R not so much.

Here's what we would do in Stata:

set obs 1000 gen i = _n gen val = round(runiform()*10) gen lag = val[_n-1]

The last command throws the warning, `(1 missing value generated)`

because the first observation has no lagged observation. The first 10 observations ...

I am attempting to learn R. This is either a great thing or a terrible, terrible mistake while on the tenure clock. But, all the cool kids are doing -- so even though they might also jump off a bridge, I'm going to jump into R.

The hardest part so far is doing things that now come as second nature to me in Stata. Although R's tools are much better in the long-run, learning what types of objects different functions return and such ends up being a very high learning curve.

A while back (all posts are a while back now), I wrote a post describing how to import ...