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 <[email protected]>[email protected]> Dourados, MS - [22 16.5'S, 54 49'W] Em 31 de março de 2015 16:23, Michelle Bau Graczyk <[email protected]> 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 <[email protected]> > 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 <[email protected]>[email protected]> >> Dourados, MS - [22 16.5'S, 54 49'W] >> >> Em 31 de março de 2015 14:25, Michelle Bau Graczyk <[email protected]> >> 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 >>> [email protected] >>> 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 >> [email protected] >> 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 > [email protected] > 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 [email protected] 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.
