
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