Cómo recorrer una lista o marco con los datos r aplicar funciones

Cuando los datos están en la forma de una lista, y que desea realizar cálculos en cada elemento de la 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:

gt; lapply (iris, clase)

Como ya saben, cuando se utiliza sapply (), R intentos de simplificar los resultados a una matriz o vector:

Video: Excel - Macro de Búsqueda y eliminación de datos - VBA

gt; sapply (iris, clase) Sepal.Length Sepal.Width Petal.Length Petal.Width Especies"numérico" "numérico" "numérico" "numérico" "factor"

Digamos que quiere calcular la media de cada columna de iris:

gt; sapply (iris, significan) 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ógico : regresar 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, devuelva N / A.

los DIVERTIDO argumento de la aplicar() las funciones pueden ser cualquier función, incluyendo sus propias funciones personalizadas. De hecho, 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:

gt; sapply (iris, la función (x) ifelse (is.numeric (x), 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.

Video: Desplegar lista de datos

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

Artículos Relacionados