11.2 Otras funciones similares a ddply de plyr

En el código

res <- dlply(airquality, .(Month), function(x) lm(Temp ~ Solar.R, data = x))
lapply(res, coefficients)
ldply(res, coefficients)

introducimos varias novedades. La primera, una función anónima: en lugar de crearla fuera de la llamada y asignarle un nombre, podemos simplemente utilizar una función de usar y tirar. En segundo lugar, hemos usado la función dlply que es similar a ddply y que solo se diferencia de ella en que devuelve una lista en lugar de una tabla. Finalmente hemos usado la función ldply que recorre esa lista y la recompone en una tabla. Otras funciones de uso más esporádico son llaply. laply, alply e, incluso, d_ply.

Las funciones xyply toman un elemento del tipo indicado por x, lo trocean convenientemente, aplican una función a cada trozo y tratan de recomponer el resultado en un objeto de tipo indicado por y. Por eso, ddply opera sobre tablas y devuelve tablas; ldply opera sobre listas (elemento a elemento) y devuelve tablas; llply opera sobre listas y devuelve listas, etc. El prefijo a corresponde a arrays (no cubiertos en este curso) y _ a nada: se usa para funciones que no devuelven ningún objeto sino que, tal vez, escriben resultados en disco o generan gráficos.

Usa dlply para partir iris por especies. Es decir, crear una lista que contenga los tres bloques de iris correspondientes a sus tres especies. Nota: la función I, la identidad, puede serte útil.