[R-br] Mudar formatação de uma timestamp separando em colunas.

Éder Comunello comunello.eder em gmail.com
Terça Março 31 17:53:50 BRT 2015


Crie vetores para a data e hora, depois utilize aggregate(). No exemplo
preferi adicionar os vetores no data.frame.

Consulte o help da aggregate() pra personalizar a saída.

text <- 'symbol;nr;timestamp;open;high;low;close;volume
1;INTC;1;2011-09-09 09:30:59;19.7500;19.86;19.75;19.8400;615100
2;INTC;2;2011-09-09 09:31:59;19.8350;19.86;19.79;19.8600;242900
3;INTC;3;2011-09-09 09:32:58;19.8501;19.86;19.80;19.8001;314400
4;INTC;4;2011-09-09 10:33:56;19.8068;19.81;19.77;19.7800;183500
5;INTC;5;2011-09-09 10:34:59;19.7900;19.81;19.78;19.7901;150900
6;INTC;6;2011-09-09 10:35:59;19.8000;19.81;19.74;19.7700;264600
'

INTC <- read.table(textConnection(text), header=TRUE, sep=";")
head(INTC)

INTC$data <- as.Date(as.POSIXlt(INTC$timestamp))
INTC$hora <- format(as.POSIXlt(INTC$timestamp), "%H")
head(INTC)

aggregate(.~data+hora, data=INTC, FUN=mean)


Éder Comunello <c <comunello.eder em gmail.com>omunello.eder em gmail.com>
Dourados, MS - [22 16.5'S, 54 49'W]

Em 31 de março de 2015 16:23, Michelle Bau Graczyk <mbgraczyk em gmail.com>
escreveu:

> Oi Éder,
>
> Entendi! Muito obrigada!
> Eu vou aproveitar para tirar mais uma dúvida:
>
> Eu tenho que calcular a média do volume por hora fixa. Então eu pensei em
> criar dois laços, um dentro do outro que roda a hora e depois os minutos
> para que, para cada hora fixa, ele calcule a média. O problema é que eu não
> sei como fazer o laço lidando com o formato de horas. Eu penso que deve ser
> mais ou menos assim:
>
> INTC<-read.table("/Users/bau/Documents/Mestrado/Dadosbaixadosdothebonnotgang/INTC_1m.txt",
> header=TRUE, sep=";", dec=",")
> INTC[1:5,]
>
> contador<-0
> a<-0
> for( "H" in 9:16){
>   for("M" in 1:59){
>
>     contador<-contador+1
>     volumeMedio= (a+ INTC$volume)/contador
>     a<-volumeMedio
>   }
> }
>
> Você poderia me ajudar?
>
> Muito obrigada!
>
> Em 31 de março de 2015 16:07, Éder Comunello <comunello.eder em gmail.com>
> escreveu:
>
>> Olá,
>>
>> Basicamente, faltou identificar Ano, mês e dia na conversão da string.
>>
>> x <- c("2011-09-09 09:30:59", "2011-09-09 09:31:59", "2011-09-09
>> 09:32:58")
>>
>> strptime(x, "%H:%M:%S")
>> # [1] NA NA NA
>>
>> strptime(x, "%Y-%m-%d %H:%M:%S")
>> # [1] "2011-09-09 09:30:59 AMT" "2011-09-09 09:31:59 AMT" "2011-09-09
>> 09:32:58 AMT"
>>
>> as.POSIXlt(x)
>> # [1] "2011-09-09 09:30:59 AMT" "2011-09-09 09:31:59 AMT" "2011-09-09
>> 09:32:58 AMT"
>>
>> as.Date(as.POSIXlt(x))
>> # [1] "2011-09-09" "2011-09-09" "2011-09-09"
>>
>> format(as.POSIXlt(x), "%H:%M:%S")
>> # [1] "09:30:59" "09:31:59" "09:32:58"
>>
>> Éder Comunello <c <comunello.eder em gmail.com>omunello.eder em gmail.com>
>> Dourados, MS - [22 16.5'S, 54 49'W]
>>
>> Em 31 de março de 2015 14:25, Michelle Bau Graczyk <mbgraczyk em gmail.com>
>> escreveu:
>>
>>> Boa tarde,
>>>
>>> Eu tenho um arquivo nesse formato e queria que a coluna de timestamp
>>> fosse separada em uma de data e outra de hora pois preciso calcular a media
>>> do volume por horário.
>>> Para isso eu tentei usar o programa abaixo mas a saida foi NA:
>>>
>>> >
>>> INTC<-read.table("/Users/bau/Documents/Mestrado/Dadosbaixadosdothebonnotgang/INTC_1m.txt",
>>> header=TRUE, sep=";", dec=",")
>>> > INTC[1:25,]
>>>    symbol nr           timestamp    open  high   low   close volume
>>> 1    INTC  1 2011-09-09 09:30:59 19.7500 19.86 19.75 19.8400 615100
>>> 2    INTC  2 2011-09-09 09:31:59 19.8350 19.86 19.79 19.8600 242900
>>> 3    INTC  3 2011-09-09 09:32:58 19.8501 19.86 19.80 19.8001 314400
>>> 4    INTC  4 2011-09-09 09:33:56 19.8068 19.81 19.77 19.7800 183500
>>> 5    INTC  5 2011-09-09 09:34:59 19.7900 19.81 19.78 19.7901 150900
>>> 6    INTC  6 2011-09-09 09:35:59 19.8000 19.81 19.74 19.7700 264600
>>> 7    INTC  7 2011-09-09 09:36:57 19.7700 19.81 19.77 19.8001 174300
>>> 8    INTC  8 2011-09-09 09:37:57 19.8100 19.81 19.76 19.7700 146200
>>> 9    INTC  9 2011-09-09 09:38:59 19.7600 19.83 19.76 19.8300 192100
>>> 10   INTC 10 2011-09-09 09:39:59 19.8400 19.87 19.83 19.8600 172500
>>> 11   INTC 11 2011-09-09 09:40:59 19.8700 19.87 19.76 19.7700 275000
>>> 12   INTC 12 2011-09-09 09:41:58 19.7700 19.77 19.72 19.7500 269200
>>> 13   INTC 13 2011-09-09 09:42:59 19.7500 19.82 19.75 19.8100 209600
>>> 14   INTC 14 2011-09-09 09:43:57 19.8197 19.82 19.79 19.7900 303200
>>> 15   INTC 15 2011-09-09 09:44:57 19.7900 19.82 19.78 19.7900 148000
>>> 16   INTC 16 2011-09-09 09:45:58 19.7900 19.79 19.75 19.7550 168700
>>> 17   INTC 17 2011-09-09 09:46:59 19.7600 19.85 19.75 19.8500 224200
>>> 18   INTC 18 2011-09-09 09:47:57 19.8594 19.88 19.85 19.8700 158600
>>> 19   INTC 19 2011-09-09 09:48:01 19.8800 19.91 19.87 19.9000 219500
>>> 20   INTC 20 2011-09-09 09:49:59 19.8900 19.92 19.89 19.9200 121000
>>> 21   INTC 21 2011-09-09 09:50:59 19.9200 19.93 19.90 19.9200 241400
>>> 22   INTC 22 2011-09-09 09:51:59 19.9100 19.95 19.90 19.9300 214000
>>> 23   INTC 23 2011-09-09 09:52:59 19.9300 19.94 19.92 19.9300  74200
>>> 24   INTC 24 2011-09-09 09:53:59 19.9292 19.93 19.88 19.9000 274400
>>> 25   INTC 25 2011-09-09 09:54:59 19.9000 19.92 19.87 19.9200  75800
>>>
>>> > strptime(INTC$timestamp," %H:%M:%S")
>>>     [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
>>> NA NA NA NA NA NA NA NA NA
>>>    [31] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
>>> NA NA NA NA NA NA NA NA NA
>>>    [61] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
>>> NA NA NA NA NA NA NA NA NA
>>>    [91] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
>>> NA NA NA NA NA NA NA NA NA
>>>   [121] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
>>> NA NA NA NA NA NA NA NA NA
>>>   [151] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
>>> NA NA NA NA NA NA NA NA NA
>>>   [181] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
>>> NA NA NA NA NA NA NA NA NA
>>>   [211] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
>>> NA NA NA NA NA NA NA NA NA
>>>   [241] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
>>> NA NA NA NA NA NA NA NA NA
>>>   [271] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
>>>  [ reached getOption("max.print") -- omitted 335637 entries ]
>>>
>>> Muito obrigada!!!
>>>
>>> _______________________________________________
>>> 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.
>>>
>>
>>
>> _______________________________________________
>> 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.
>>
>
>
> _______________________________________________
> 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/20150331/54c79810/attachment.html>


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