[R-br] Operações com datas

Paulo J Ribeiro Jr paulojus em leg.ufpr.br
Terça Janeiro 17 16:41:14 BRST 2012


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
> 

-- 
Paulo Justiniano Ribeiro Jr
LEG (Laboratorio de Estatistica e Geoinformacao)
Universidade Federal do Parana
Caixa Postal 19.081
CEP 81.531-990
Curitiba, PR  -  Brasil
Tel: (+55) 41 3361 3573
VOIP: (+55) (41) (3361 3600) 1053 1066
Fax: (+55) 41 3361 3141
e-mail: paulojus AT  ufpr  br
http://www.leg.ufpr.br/~paulojus




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