[R-br] Ajuda com organização de dados

Thiago V. dos Santos thi_veloso em yahoo.com.br
Domingo Junho 25 22:30:46 -03 2017


Jackson,
Se a quantidade de medidas que você possui for alta, entao o seu conjunto de dados é um perfeito candidato para pacotes que trabalhem com big data. A minha recomendação é o data.table, porque ele é otimizado para trabalhar com dados de tamanho na casa das dezenas ou centenas de gigabytes. 
A seguir eu vou mostrar um exemplo da sumarizacao que você precisa fazer, baseado em dados aleatórios de temperatura gerados no próprio exemplo. Gerei dados de temperatura porque a variabilidade dos dados é mais previsível, mas é só para você ter ideia de como funciona e adaptar para o seu caso.
O truque do código é separar a data em dia, mes e ano, e rodar o comando de sumarização para a frequencia que voce precisa (diaria, mensal etc). Veja o codigo a seguir e reporte de volta caso tenha alguma duvida.
# Cria sequencia de datasidx = seq(as.Date("1961/1/1"), as.Date("2010/12/31"), by = "day")
# Cria sequencia aleatória de temperatura entre 10C e 30Ctemp = runif(10, 30, n=length(idx))
# Organiza tudo em data frame, incluindo data "separada" em ano, mes e diaDF <- data.frame(date=idx,                 year=as.numeric(format(idx, format="%Y")),                 month=as.numeric(format(idx, format="%m")),                 day=as.numeric(format(idx, format="%d")),                 temp=temp)
# Carrega pacote e converte data frame em data tablelibrary(data.table)DT <- data.table(DF)
# Roda as operações de sumarização que voce precisa# Obviamente substitua mean por sum para somar os seus dados reais.dt1 <- DT[, mean(temp), by = "day"]dt2 <- DT[, mean(temp), by = c("day","month")]
Espero que ajude, -- Thiago V. dos Santos
PhD studentLand and Atmospheric ScienceUniversity of Minnesota 

    On Sunday, June 25, 2017 3:58 PM, Jackson Rodrigues via R-br <r-br em listas.c3sl.ufpr.br> wrote:
 

 Olá pessoal,

Preciso muito da ajuda de vocês. Tenho que sintetizar dados de precipitação de vários dias e meses em uma única tabela.
No entanto, os dados que possuo estão dispersos em dias e horas diferentes. A maior frequência de observações estão nos dias mais chuvosos enquanto os dias mais secos tem poucas.

Vou colocar aqui um exemplo de tabela como os dados estão e em seguida a tabela que gostaria que se tornasse.

Os dados estão como na tabela abaixo que representa a precipitaçção de 1 único ano. Vejam que a quantidade de observações varia de um dia para outro o ano todo.


|     |  Dia  |  Hora  |  Prec  |
|  Jan    |  1  |  7:00  |  20  |
|  1  |  7:20  |  15  |
|  1  |  7:30  |  5  |
|  2  |  6:00  |  10  |
|  2  |  15:00  |  16  |
|  ...  |  ...  |  ...  |
|  31  |  7:00  |  2  |
|  Fev  |  1  |  9:00  |  6  |
|  1  |  9:45  |  30  |
|  2  |  6:45  |  12  |
|  2  |  16:00  |  20  |
|  2  |  22:00  |  60  |
|  ...  |  ...  |  ...  |
|  28  |  11:30  |  25  |
|  ...  |  ...  |  ...  |  ...  |
|  Dez  |  31  |  ...  |  ...  |


 Desse jeito fica difícil trabalhar quando for comparar com a precipitação dos outros anos.Assim gostaria de sintetizar toda essa informação em uma única tabela.
Somar tudo que for de Janeiro 1, somar tudo que for de janeiro 2 e assim por diante até o fim do ano gerando a tabela a seguir.


|  Mês       Dia->  |  1  |  2  |  3  |  4  |  ...  |  31  |     |
|  Jan  |  40  |  16  |  50  |  66  |  ...  |  90  |  Total precipitado por dia  |
|  Fev  |  60  |  120  |  25  |  45  |  ...  |  87  |
|  ...  |  ...  |  ...  |  ...  |  ...  |  ...  |  ...  |
|  Dez  |  120  |  30  |  26  |  90  |  ...  |  5  |


A grande questão é como fazê-lo. Preciso de um comando que diga some tudo que for do dia 1 de Jan, some tudo de 2 de Jan e assim sucessivamente.

Alguém poderia me ajudar com isso?

Obrigado

Jackson

-_______________________________________________
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.

   
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20170626/41a5f617/attachment-0002.html>


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