
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