Como percorrer uma lista ou dados moldura com r aplicar funções

Quando seus dados estão na forma de uma lista, e você quiser executar cálculos em cada elemento dessa lista em R, a adequada Aplique

função é lapply (). Por exemplo, para obter a classe de cada elemento íris, faça o seguinte:

Video: Curso de Python - Aula 46 - Listas III - eXcript

gt; lapply (íris, classe)

Como você sabe, quando você usa sapply (), R tentativas para simplificar os resultados para uma matriz ou vector:

gt; sapply (íris, classe) Sepal.Length Sepal.Width Petal.Length Petal.Width Espécie"numérico" "numérico" "numérico" "numérico" "fator"

Digamos que você queira calcular a média de cada coluna de íris:

Video: Funções



gt; sapply (íris, dizer) Sepal.Length Sepal.Width Petal.Length Petal.Width Species5.843333 3,057333 3,758000 1,199333 mensagem NAWarning: Em mean.default (X [[5L]], ...): argumento não é numérico ou lógico : retornar NA

Há um problema com esta linha de código. Ele lança uma mensagem de aviso porque espécies não é uma coluna numérica. Assim, você pode querer escrever uma pequena função dentro Aplique() que testa se o argumento é numérico. Se for, em seguida, calcular a média Scoreboard caso contrário, simplesmente devolvê N / D.

Video: Funções: Análise e construção de gráficos - LISTA 4

o DIVERSÃO argumento do Aplique() funções pode ser qualquer função, incluindo suas próprias funções personalizadas. Na verdade, você pode ir um passo além. Na verdade, é possível definir uma função dentro a DIVERSÃO chamada argumento para qualquer Aplique() função:

gt; sapply (íris, função (x) ifelse (is.numeric (x), média (x), NA)) Sepal.Length Sepal.Width Petal.Length Petal.Width Species5.843333 3,057333 3,758000 1,199333 NA

O que está acontecendo aqui? Você definiu uma função que recebe um único argumento X. E se X é numérico, ele retorna significa (x)- caso contrário, retorna N / D. Porque sapply () atravessa sua lista, cada coluna, por sua vez, é passado para a função e avaliados.

Quando você definir uma função sem nome como esta dentro de outra função, ele é chamado de função anônima. funções anônimas são úteis quando você deseja calcular algo bastante simples, mas você não necessariamente quer armazenar permanentemente essa função em seu espaço de trabalho.


Publicações relacionadas