[R-br] Contar Dados faltantes

Manoel Galdino mcz.fea em gmail.com
Sexta Abril 19 22:35:12 BRT 2013


Uma pequena amostra dos dados ajudaria.
Mas com certeza dá pra vetorizar isso, e talvez até usar o pacote
data.table.

Eu entendi que c é 60.000 e h 200?

Talvez resolva o loop externo:

bancof[,1] %in% obsf[1,1] & bancof[,2] %in% obsf[1,2]

Isso deve retornar um vetor de True e False. Apenas some os T (ou os F) e
você tem a sua resposta.
Aí você pode passar um loop para cada um.

Outra opção, se o "%in%" não funcionar, é usar o match. Por exemplo:

is.na(match(bancof[,1] %in% obsf[1,1])) & is.na(match(bancof[,2] %in%
obsf[1,2]))

O match retorna NA quando não há match. Assim, com os is.na, vocÊ tem um
vetor que é T onde não há match. Combinando os dois testes, vocÊ tem um
vetor onde é T se não houver os dois matchs. Depois, basta dá um sum no
vetor para ter a qtde que não há match.

Como o h é de 200, um loop em h deve ser rápido. Mas creio que dá pra
evitar um loop completamente, talvez pensando em termos de algebra linear e
multiplicações de vetores, construindo alguma indicadora. MAs sem um
exemplo reproduzível fica difícil ajudar.
abçs
M




2013/4/19 Helena Turon <helena.turon em gmail.com>

> Prezados,
>
> Para contar os horários ou dias sem observações na estação meteorológica,
> dados faltantes.
> Fiz um “for” no R:
>
>
>
> c=comprimento do vetor teórico (sequencia de datas e horários que deveriam
> existir observações).
>
> h= comprimento dos dados das estações (pode haver horários ou dias
> seguidos sem observações).
>
>
>
> igual=0
>
>
>
> for (m in 1:c){
>
> for (jj in 1:h){
>
> if ((bancof[m,1] == obsf[jj,1]) & (bancof[m,2] == obsf[jj,2]) )
>
> {igual = igual+1}
>
> }
>
> }
>
>
>
> faltantes = c-igual
>
>
>
>
>
> coluna 1 é data dd/mm/aaaa e
>
> coluna 2 horário (0, 12, 18)
>
>
>
> Mas ele está demorado: uns 20 minutos por estação (pois elas têm umas
> 60.000 observações). Eu tenho umas 200 estações.
>
> Serão quatro dias, só para os dados do Brasil, têm ainda outros países da
> América do Sul.
>
>
> Será que existe alguma função no R que faça isto mais depressa?
>
> Obrigada,
>
> --
> Helena Turon Balbino
> Meteorologista
> Instituto Nacional de Meteorologia - INMET
> 7º DISTRITO DE METEOROLOGIA (SP e MS)
> Tel: (11) 5051-5700
> ********************************************************
>
> _______________________________________________
> 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.
>



-- 
Manoel Galdino
https://sites.google.com/site/galdinomcz/
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130419/8272ed6d/attachment.html>


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