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@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@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@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