
Olá Augusto, me desculpa pela demora em responder mas eu estava testando se eu havia entendido! E deu certo! Muito obrigada pelas dicas!!! Em 10 de novembro de 2015 11:08, Augusto Ribas <ribas.aca@gmail.com> escreveu:
Ola.
Talvez se você informar como está lendo seu dados ajude, imagino que está tudo como charater, mas você pode passar esses dados para algum formato de tempo, por exemplo o posix do R, mas tem pacotes so com coisas de tempo também que podem te dar soluções até mais faceis. Mas segue uma solução que talvez ajude.
#veja como é o tempo no R Sys.time()
#criando seu vetor de indices #de um ?as.POSIXct, veja uns exemplos, para converter suas colunas para tempo no formato do posix #Dai vc precisa de um tempo inicial, vamos supor agora inicio <- as.POSIXct("2015-11-10 09:31:18 AMST") #O fim das suas coletas, daqui 30 min por exeplo fim <- inicio + as.difftime(30, units="mins") #e vc cria um vetor de min em min, mas poderia ser qq intervalo, de 5 em 5 min, so mudar o by indice<-seq(from=inicio, by=as.difftime(1, units="mins"), to=fim)
#gerando alguns dados de exemplo medida<-rnorm(100,10,2) horario<-indice[sample(1:length(indice),100,replace=T)] dados<-data.frame(medida,horario)
#veja os dados, imagino que no final vc vai ter medidas e o tempo dados
#agora da pra usar cut com o indice para juntar seus dados e aggregate da forma convencional aggregate(dados$medida,list(cut(dados$horario,indice[-1])),mean) #ai pra normalizar, fazer outras operações, é so ir usando o fator que o cut gera pra vc
Em 10 de novembro de 2015 09:14, Michelle Bau Graczyk <mbgraczyk@gmail.com
escreveu:
Caros, bom dia,
Eu estou com um data frame da forma : "data" "hora" "bid" "bidQ" "ask" "askQ" "last" "volume" "1" 2004-01-04 "09:30" -1 -1 -1 -1 38 55900 "2" 2004-01-04 "09:30" -1 -1 -1 -1 38 600 "3" 2004-01-04 "09:31" -1 -1 -1 -1 38 5000 "4" 2004-01-04 "09:31" 38.05 32 38.08 1 38.05 6000 "5" 2004-01-04 "09:31" 38.06 2 38.08 1 38.06 1500 "6" 2004-01-04 "09:31" 38.06 4 38.07 1 38.06 500 "7" 2004-01-04 "09:32" 38.04 1 38.07 1 38.05 4500 "8" 2004-01-04 "09:32" 38 1 38.2 1 38.03 1600 "9" 2004-01-04 "09:32" 38 1 38.2 1 38.03 3800 "10" 2004-01-04 "09:32" 38 1 38.04 1 38.04 500 "11" 2004-01-04 "09:32" 38 1 38.07 1 38.03 200 "12" 2004-01-04 "09:32" 38 1 38.08 2 38.07 100 "13" 2004-01-04 "09:32" 38 1 38.08 2 38.01 5000 "14" 2004-01-04 "09:32" 38 21 38.08 2 38.05 200 "15" 2004-01-04 "09:33" 38.03 9 38.13 8 38.08 700 "16" 2004-01-04 "09:33" 38.08 15 38.13 8 38.08 100 "17" 2004-01-04 "09:33" 38.11 16 38.13 10 38.12 900
onde as datas vão de 2004-01-04 até 2013-06-30 e os horários de 09:30 até 16:10. Eu tenho que achar o volume médio para cada minuto e depois normalizar esses volumes para cada minuto pelo volume médio. Eu tento montar um programa cheio de for() para data e for() para horário mas não está dando certo… Acho que deve ter uma lógica mais simples. Alguém saberia me dar uma dica?
Muito obrigada!
Michelle
_______________________________________________ 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.
-- Grato Augusto C. A. Ribas
Site Pessoal: http://recologia.com.br/ <http://augustoribas.heliohost.org> Github: https://github.com/Squiercg Lattes: http://lattes.cnpq.br/7355685961127056
_______________________________________________ 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.