[R-br] pergunta simples - aplicar função para rows de um dataframe
Vitor Aguiar
vitor.aguiar em me.com
Quarta Maio 16 19:21:50 BRT 2012
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
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120516/79f2df4f/attachment.html>
Mais detalhes sobre a lista de discussão R-br