Skip to content

[R-es] Hola, soy Pablo.

12 messages · Javier Marcuzzi, Daniel, Pablo Andres Guzzi +2 more

#
Pablo,

Luego de leer el mensaje de Javier me pareció que podría ser un tema
que interese a más gente, por lo tanto, me tomé la libertad de usar tu
ejemplo (por favor otra vez envía datos que sean reproducibles
http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example
).

Espero lo siguiente sea lo que necesitas y sirva a otros para orientar
sus consultas, o para que gentilmente me corrijan.

library(xts)

# Data artificial, no necesariamente igual a la de Pablo por un tipeo descuidado
Fecha <- c(rep(as.Date("2012-1-1"), 3), rep(as.Date("2012-1-2"), 6),
rep(as.Date("2012-1-3"), 3))
Hora <- c("5:39:10","5:39:17","5:50:10","8:39:10","9:39:10","9:39:13","11:39:10","12:39:10","13:39:10","14:39:10","15:39:10","16:39:10")
Importe <- c(10,15,50,240,40,110,80,100,15,200,300,150)
FechaHora <- as.POSIXct(paste(Fecha, Hora), tz = "UTC")
diff(FechaHora, lag=1) # no lo uso es solo para ver las diferencias en segundos
ep <- endpoints(FechaHora, 'hours')
PabloData <- xts(Importe, FechaHora)
period.apply(PabloData, INDEX=ep, FUN=sum)
# como verás no usé rollapply, sino period.apply ya que los datos
vienen con períodos irregulares.
# no me tomé el tiempo para ver si el resultado es el correcto.

Daniel Merino



El día 28 de noviembre de 2012 13:05, Marcuzzi, Javier Rubén
<javier.ruben.marcuzzi en gmail.com> escribió:

  
    
#
No es precisamente lo que quiero. Tal vez lo exprese mal.

El Script que mandaste lo simulo de la siguiente forma!
Adjunto el .csv para que todos tengamos los mismo




datos <- read.csv("C:/datos.csv")

datos ## estado inicial del data frame

datos$hs<-substring(datos$Hora, 1, 2)

base2 <- ddply(datos, .(Tarjeta,hs), transform, acum=cumsum(Importe))
base2


Ahora, eso, hace hora a hora la suma del importe. Pero por ejemplo si, una
transaccion se hace 4.59 no la tiene en cuenta para el calculo de la hora 5.

Yo necesito lo siguiente




En donde Importe_hora, es la suma del importe de las transacciones que se
hicieron en los ultimos 60 minutos en referencia a la fecha y hora de
la transaccion
en cuestion.
























Abrazo

Pablo A. Guzzi
guzzipa en gmail.com




El 28 de noviembre de 2012 16:14, daniel <daniel319 en gmail.com> escribió:
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20121128/1857f8b0/attachment-0001.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: datos.csv
Type: text/csv
Size: 500 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20121128/1857f8b0/attachment-0001.bin>
#
Hola Daniel:

Muchas gracias por este ejemplo tan claro y útil!! Saludos!!

On Wed, 28 Nov 2012 16:14:54 -0300
daniel <daniel319 en gmail.com> wrote:

            
#
intente hacerlo andar pero hay algo que estoy omitiendo evidentemente

(adjunto csv)

######################################
datos <- read.csv("C:/datos.csv")

datos ## estado inicial del data frame

n <- nrow(datos)

datos$Fecha<-as.Date(datos$Fecha, format='%d/%m/%Y')
datos$hora<-substring(datos$Hora, 1, 2)
datos$min<-substring(datos$Hora, 4, 5)
datos$seg<-substring(datos$Hora, 7, 8)

datos$tiempo<-as.numeric(datos$Fecha)*24*60*60 +
as.numeric(datos$hora)*60*60 + as.numeric(datos$min)*60 +
as.numeric(datos$seg)

intervalo <- 3600

for (i in 1:n) {

  tarj <- datos$Tarjeta[i]
  t.i <- datos$tiempo[i]
  t_ini <- t.i-intervalo
  t_fin <- t.i

  monto_hs_temp <- sqldf(
                      paste("select sum(Importe) from datos where Tarjeta =
'",
                        tarj,
                        " and tiempo between ",
                        t_ini,
                        " and ",
                        t_fin,
                        sep="")
                     )

  datos$montohs[i]<-monto_hs_temp

  rm(monto_hs_temp)
}

######################################

Abrazo

Pablo A. Guzzi
guzzipa en gmail.com




El 29 de noviembre de 2012 15:30, Carlos Ortega
<cof en qualityexcellence.es>escribió:
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20121129/f45ca283/attachment-0001.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: datos.csv
Type: text/csv
Size: 500 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20121129/f45ca283/attachment-0001.bin>