[R-br] Trabalhar com subsets de data frame
Michelle Bau Graczyk
mbgraczyk em gmail.com
Quarta Novembro 11 08:55:05 BRST 2015
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 em 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 em 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 em 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 em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20151111/bd572ebc/attachment.html>
Mais detalhes sobre a lista de discussão R-br