Regresión en un subconjunto en R

Quiero ejecutar la misma regresión para diferentes países (es decir, subconjuntos de mis datos). Descubrí cómo hacerlo en R, pero después de hacer lo mismo con mucha más facilidad en Stata, me pregunto si hay una mejor manera en R.

En Stata harías algo como esto:

foreach country in USA UK France {
    reg y x1 x2 if country == "`country'"
}

Simple y legible, ¿verdad? En R, se me ocurren métodos split y ddply, ambos son más complicados. Usarsplit

data.subset <- split(data, data$country)[c("USA", "UK", "France")]
res <- lapply(data.subset, function(subset) lm(y ~ x1 + x2, data=subset))

Un código más compacto usaríaddply. Pero en este caso, el modelo se ejecutará para todos los países. ¿Puedo elegir sólo unos pocos?

ddply(data, "country", function(df) coefficients(lm(Y~X1+X2, data=df)))

Pero, una vez más, me interesa saber si hay un ciclo for intuitivo y legible como en Stata.

Respuestas a la pregunta(1)

Su respuesta a la pregunta