Cómo recorrer una lista o datos de trama con r aplicar funciones

Cuando los datos están en la forma de una lista, y desea realizar cálculos en cada elemento de esa lista en R, la adecuada aplicar función es lapply (). Por ejemplo, para obtener la clase de cada elemento de la iris, Haz lo siguiente:

> Lapply (iris, clase)

Como usted sabe, cuando se utiliza sapply (), R intenta simplificar los resultados a una matriz o vector:

> Sapply (iris, clase) Sepal.Length Sepal.Width Petal.Length Petal.Width Especies "numérico" "numérico" "numérico" "numérico" "factor"

Digamos que usted desea calcular la media de cada columna de iris:

> Sapply (iris, significa) Sepal.Length Sepal.Width Petal.Length Petal.Width Species5.843333 3.057333 3.758000 1.199333 mensaje NAWarning: En mean.default (X [[5L]], ...): argumento no es numérico o lógica: volver NA

Hay un problema con esta línea de código. Se lanza un mensaje de advertencia, porque especies no es una columna numérica. Por lo tanto, es posible que desee escribir una función pequeña en el interior aplicar () que pone a prueba si el argumento es numérico. Si es así, entonces el cálculo de la media puntuación- lo contrario, simplemente volver N / A.

los DIVERTIDO argumento de la aplicar () funciones pueden ser cualquier función, incluyendo sus propias funciones personalizadas. De hecho, usted puede ir un paso más allá. De hecho, es posible definir una función dentro el DIVERTIDO argumento de llamada a cualquier aplicar () función:

> Sapply (iris, la función (x) ifelse (is.numeric (x), la media (x), NA)) Sepal.Length Sepal.Width Petal.Length Petal.Width Species5.843333 3.057333 3.758000 1.199333 NA

¿Que esta pasando aqui? Ha definido una función que toma un solo argumento X. Si X es numérico, devuelve media (x)- de lo contrario, devuelve N / A. Porque sapply () atraviesa su lista, cada columna, a su vez, se pasa a la función y evaluado.

Cuando se define una función sin nombre como esto dentro de otra función, se llama un función anónima. Las funciones anónimas son útiles cuando se quiere calcular algo bastante simple, pero no necesariamente quieren almacenar permanentemente esa función en su espacio de trabajo.




» » » » Cómo recorrer una lista o datos de trama con r aplicar funciones