[R-br] pergunta simples - aplicar função para rows de um dataframe

FHRB Toledo fernandohtoledo em gmail.com
Quarta Maio 16 19:24:08 BRT 2012


Corrigindo...

apply(dados, 1, length(which(is.na(x))) / ncol(dados))

Obrigado!

att,
FH

2012/5/16 Vitor Aguiar <vitor.aguiar em me.com>:
> Olá FH,
>
> esse código gera o valor "1" para todas as minhas linhas. Isso ocorre porque
> o length(is.na(x)) é igual a ncol(dados), mas isso só seria verdade se todos
> os meus dados fossem NA, e não são.
>
> Eu tentei algo como table(is.na(pop[1, ]))[[2]]. Isso conta quantos são NA e
> quantos não são (FALSE e TRUE), e então eu extraio o segundo valor, que
> representa a quantidade de NAs (NA = TRUE). Depois eu divido isso pelo ncol
> pra ter a proporção.
> Mas não consigo aplicar isso pra todas as linhas.
>
>
> Vitor
>
>
> On May 16, 2012, at 3:03 PM, FHRB Toledo wrote:
>
> Vitor,
>
> Algo como pode funcionar:
>
> apply(dados, 1, function(x) length(is.na(x)) / ncol(dados)
>
> * Código não testado!
>
> att,
> FH
>
> 2012/5/16 Vitor Aguiar <vitor.aguiar em me.com>:
>
> Boa tarde a todos,
>
>
> tenho um dataframe composto de milhares de linhas e queria calcular o
>
> proporção de NAs que tenho em cada linha em relação ao total de dados para
>
> essa linha.
>
>
> Exemplo de linha no dataframe:
>
>
> 1 NA NA 15 16 23 22 NA NA NA NA 4 10 18 19 14 21 NA NA 11 8 6 11 NA NA
>
>
> Então pensei em fazer algo como:
>
>
> funçãoNA = function( x ) {
>
> naind = table(is.na( x[i, ]))
>
> naind[[2]] / length(x[i, ])
>
> }
>
>
> Sou novo em programação e não sei como aplicar isso pra todas as linhas. Não
>
> consigo aplicar a função acima com a função apply, pois ela não reconhece o
>
> "i". Tenho que usar um loop pra isso?
>
>
> Desde já, muito obrigado.
>
> Vitor
>
>
> _______________________________________________
>
> R-br mailing list
>
> R-br em listas.c3sl.ufpr.br
>
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
>
> mínimo reproduzível.
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
> mínimo reproduzível.
>
>
> Vitor Rezende da Costa Aguiar
> ---------------------------------------------------
> PhD candidate in biotechnology
> Rede Nordeste de Biotecnologia
> UFES, Brazil
> ---------------------------------------------------
> Current Adress:
> Department of Integrative Biology
> University of California, Berkeley
> 2033 Valley Life Sciences Building #4134
> Berkeley, CA 94720
> Phone: 1 (510) 473-2070
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
> mínimo reproduzível.


Mais detalhes sobre a lista de discussão R-br