[R-br] Operações com datas [RESOLVIDO]

ASANTOS alexandresantosbr em yahoo.com.br
Terça Janeiro 17 20:20:03 BRST 2012


   Rubem e Walmes,

           Agradeço as soluções propostas, não sei qual o problema do 
servidor da UFLA com o Yahoo, mas existe um atraso no recebimento de 
alguns emails quando estou na universidade.

Redobrados agradecimentos,

Alexandre



Em 17-01-2012 17:22, ASANTOS escreveu:
> Prof. Paulo,
>
>       Funcionou muito obrigado. Segue solução:
>
> ### Criando o objeto com datas e a variável climática
> x <- as.Date("1994-01-01")
> times <- 1:2865
> datas <- x+times
>
> dia<-as.POSIXlt(datas)$mday### Extrai os dias
> mes<-as.POSIXlt(datas)$mon +1### Extrai os meses
> ano<-as.POSIXlt(datas)$year + 1900### Extrai os anos
>
> datas<-as.data.frame(datas)##Cria o vetor data de 01/01/1994 a 5/11/2001
> variavel<-rnorm(2865)## Simula a variável medida no dia
> dados<-cbind(datas,dia,mes,ano,variavel)##Cria o objeto
>
>
> quinzena <- factor(ifelse(dia >=1 & dia <=15, "Q1", "Q2"))##Crias os 
> dois fatores
>
> dados<-cbind(datas,dia,mes,ano,quinzena,variavel)##Cria um novo objeto
>
>
> res<-aggregate(dados$variavel, 
> by=list(dados$ano,dados$mes,dados$quinzena),mean)###Calcula a média 
> para cada quinzena
>
> res2<-res[with(res, order(Group.1, Group.2)), ]## Ordenando os resultados
>
>
>
>


> Em 17-01-2012 16:41, Paulo J Ribeiro Jr escreveu:
>> Alexandre
>>
>> sem fornecer/testar código aqui vai uma sugestao de como eu faria
>>
>> há funcoes que manipulam datas que permitem voce extrair o dia do mes,
>> portanto
>>
>> 1. criar nova variável (dia)  com dia do mes
>> 2. criar um fator (quanzena) dividindo os dias nos niveis
>> quinzena<- factor(ifelse(dia>=1&  dia<=15, "Q1", "Q2")
>> 3. fazer o que voce precisa cruzando precipitacao etc com a variável
>> quinzena
>>
>> por exemplo
>> tapply(precipitacao, quinzena, mean, na.rm=T)
>>
>>
>>
>>
>>
>> Em Ter, 2012-01-17 às 16:16 -0200, ASANTOS escreveu:
>>> Boa tarde pessoal,
>>>
>>>        Tenho dados de temperatura e precipitação diárias de 1994 a 2001
>>> em uma determinada fazenda. Preciso retira as médias do dia 1º ao 15º
>>> dia e do 15º ao último dia de cada mês, porém estou tendo problemas em
>>> trabalhar com as datas, exemplificando através de uma rotina venho 
>>> fazendo:
>>>
>>> ### Criando o objeto com datas e a variável climática
>>> x<- as.Date("1994-01-01")
>>> times<- 1:2865
>>> datas<- x+times
>>> datas<-as.data.frame(datas)##Cria o vetor data de 01/01/1994 a 
>>> 5/11/2001
>>> variavel<-rnorm(2865)## Simula a variável medida no dia
>>> dados<-cbind(datas,variavel)##Cria o objeto
>>>
>>>
>>> ## Cria um vetor temporal a cada 15 dias e adiciona aos dados
>>> t<-1:191
>>> for(i in 1:length(t)){xv<-sort(rep(t,15))}
>>> xv<-as.data.frame(xv)
>>> xv<-xv[1:2865,]
>>> tp.1994_2001<-cbind(dados,xv)
>>> head(tp.1994_2001)
>>>
>>>
>>> ## Calcula as médias a cada 15 dias
>>> md<-1:2865
>>> res<-NULL
>>> for(k in 1:length(md)){Tm<-mean(tp.1994_2001[md[k],2])
>>> res<-rbind(res,c(md[k],Tm))
>>> }
>>>
>>> Porém minha abordagem esta incorreta, quando na verdade eu desejo a
>>> média do 1° ao 15º dia e do 15º ao último dia do mês, e não a cada 15
>>> dias, peguei alguns materiais de séries temporais usando o R, mas todos
>>> tratam diretamente das análises e não da manipulação de dados. Alguém
>>> saberia que abordagem eu poderia empregar para obter os resultados
>>> corretos ou alguma literatura que envolva a manipulação de datas,
>>>
>>> Obrigado
>>>
>
>


-- 
Alexandre DOS SANTOS
Engenheiro Florestal, Msc.
Laboratório de Entomologia Florestal
Departamento de Entomologia
Universidade Federal de Lavras
Caixa Postal 3037
37200-000 - Lavras - Minas Gerais - Brasil
Tel: +55 35 92230304



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