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 datas
idx = seq(as.Date("1961/1/1"), as.Date("2010/12/31"), by = "day")
# Cria sequencia aleatória de temperatura entre 10C e 30C
temp = runif(10, 30, n=length(idx))
# Organiza tudo em data frame, incluindo data "separada" em ano, mes e dia
DF <- 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 table
library(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 student
Land and Atmospheric Science
University of Minnesota
On Sunday, June 25, 2017 3:58 PM, Jackson Rodrigues via R-br <r-br@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@listas.c3sl.ufpr.brhttps://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-brLeia o guia de postagem (
http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.