Dear All, I am trying to implement a regression with state-specific trends in R. I can implement this in Stata with ease, but I am hoping to preserve my R workflow. I suspect there is an "R formula trick" that I'm just not understanding and I would be grateful to anyone who could help me understand "the R way." I posted a similar question to Stackoverflow, but the solution from there is not playing nice with plm() and I am hoping for a better answer, http://stackoverflow.com/questions/34232834/fixed-effects-regression-with-state-specific-trends My panel data looks like the following, df <- data.frame(state = rep(c("a", "b", "c"), each = 10), time = seq(1, 10, 1), stringsAsFactors = FALSE) I would like to create state-specific trends that look like these three new columns df2 <- cbind(df, model.matrix( ~ state - 1, data = df) * df$time) To achieve this in Stata, I would simply write xi: i.state i.state*time reg y x _I* The problem I have with the SO model.matrix solution is that I have greater than 200 "states." Currently, I am generating more than 200 trend columns with model.matrix and then I am building a very long formula string with each column by name, I then turn that string into a formula with as.formula(). Passing the resulting formula to lm() works but it is cumbersome, and it is also choking the fixed effects version of plm(). Is there an R formula trick to this that I am missing? Thank you, Jake [[alternative HTML version deleted]]