prucommercialre.com


Cómo Traverse una lista o trama de datos con R Aplicar funciones

Cuando los datos están en la forma de una lista, y desea realizar cálculos en cada elemento de la lista en R, la función apropiada de aplicación es lapply (). Por ejemplo, para conseguir la clase de cada elemento de iris, haga 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 del iris:

> Sapply (iris, media)
Sepal.Length Sepal.Width Petal.Length Petal.Width Especies
5.843333 3.057333 3.758000 1.199333 NA
Mensaje de advertencia:
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 ya que las especies no es una columna numérica. Por lo tanto, es posible que desee escribir una pequeña función dentro aplicar () que comprueba si el argumento es numérico. Si es así, entonces el cálculo de la media de puntuación; de lo contrario, devuelva NA.

El argumento DIVERSIÓN de las funciones de aplicación () puede ser cualquier función, incluyendo sus propias funciones personalizadas. De hecho, usted puede ir un paso más allá. Ita € s realmente posible definir una función dentro de la llamada argumento diversión a cualquier función apply ():

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

Whatâ € está pasando aquí? Ha definido una función que toma un solo argumento x. Si x es numérico, devuelve la media (x); de lo contrario, devuelve NA. Debido 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, ita € s llama una función anónima. Las funciones anónimas son útiles cuando se quiere calcular algo bastante simple, pero que dona € t necesariamente quieren almacenar permanentemente esa función en su espacio de trabajo .