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.