Ajuda com organização de dados

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 -

Veja o select ou sub set, plyr Enviado do Yahoo Mail no Android Em Dom, 25 25e jun 25e 2017 às 17:58, Jackson Rodrigues via R-br&It;r-br@listas.c3sl.ufpr.br> escreveu: 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.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.

Jackson, Com a informação passada por você podemos apenas dar sugestões. Se você quiser uma resposta mais assertiva você precisa seguir o guia de postagem(http://www.leg.ufpr.br/r-br-guia), e em particular fornecer o CMR -- código mínimo reproduzível. Minha sugestão é que você veja a documentação do pacote doBy. HTH -- Cesar Rabak 2017-06-25 17:57 GMT-03:00 Jackson Rodrigues via R-br < r-br@listas.c3sl.ufpr.br>:
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.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.

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@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.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.
participantes (4)
-
Cesar Rabak
-
Edimeire Alexandra Pinto
-
Jackson Rodrigues
-
Thiago V. dos Santos