Perfecto . Las correcciones inmediatas ya estan...

con la otra tuve problemas

________________________________________________________________________
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)

for (i in 1:n) {
  intervalo <- 60*60  #en segundos
  tarj <- datos$Tarjeta[i]
  t.i <- as.numeric(datos$tiempo[i])
  t_ini <- t.i-intervalo
  t_fin <- t.i

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

  datos$montohs[i]<-monto_hs_temp

  rm(monto_hs_temp)
}
________________________________________________________________________________

arroja el siguiente error

Error en sqliteExecStatement(con, statement, bind.data) :
  RS-DBI driver: (error in statement: no such table: datos)Además:
Mensajes de aviso perdidosIn value[[3L]](cond) :
  RAW() can only be applied to a 'raw', not a 'character'





Abrazo

Pablo A. Guzzi
guzzipa@gmail.com




El 29 de noviembre de 2012 12:16, Carlos Ortega
<cof@qualityexcellence.es>escribió:

> Hola,
>
> Hay algunos detalles que se pueden optimizar ya mismo y otros que los
> apunto a la espera de poder tener algunos datos (si es posible) para
> proponer la solución definitiva.
>
> *A)  Mejoras inmediatas:*
>
> intervalo <- 3600 # esta variable la saco fuera del bucle ya evaluada es
> fija.
>  for (i in 1:n) {
>   tarj <- datos$Tarjeta[i]
>   t.i <- datos$tiempo[i]       #Evito hacer la conversión as.numeric.
> Cuando defines tiempo (más arriba en el código, ya era todo
>    t.ini <- t.i-intervalo
>   t.fin <- t.i
>
>   #me quedo con las trx de la tarjeta
>   temp<-subset(datos,datos$Tarjeta==tarj )
>   #me quedo con las trx en el intervalo que me interesa
>   temp2<-subset(temp, tiempo >= t.ini & tiempo <= t.fin)
>
>   #hago la operacion que me interesa - en este caso sumo el importe
>   monto_hs_temp<-sum(temp2$Importe)
>
>   #asigno la operacion realizada al registro correspondiente
>   datos$montohs[i]<-monto_hs_temp
>
>   rm(temp)
>   rm(temp2)
>   rm(monto_hs_temp)
> }
>
> B) Mejoras pendientes de datos para confirmar el código
>
>
> intervalo <- 3600 # esta variable la saco fuera del bucle ya evaluada es
> fija.
> library(sqldf)
>  for (i in 1:n) {
>   tarj <- datos$Tarjeta[i]
>   t.i <- datos$tiempo[i]       #Evito hacer la conversión as.numeric.
> Cuando defines tiempo (más arriba en el código, ya era todo
>
>   t.ini <- t.i-intervalo
>   t.fin <- t.i
>
>   #me quedo con las trx de la tarjeta
>   #temp<-subset(datos,datos$Tarjeta==tarj )
>
>   #me quedo con las trx en el intervalo que me interesa
>   #temp2<-subset(temp, tiempo >= t.ini & tiempo <= t.fin)
>   #hago la operacion que me interesa - en este caso sumo el importe
>
>   #monto_hs_temp<-sum(temp2$Importe)
>
>   ## Todo lo anterior se puede ejecutar de una sola vez con la función
> sqldf() del paquete "sqldf"
>   # la función tendría esta pinta:
>   monto_hs_temp <- fn$sqldf(" *sum(Importe) from datos *
> *                                                 where Tarjeta = '$tarj'
> and *
> *                                                 tiempo between $t.ini
> and $t.fin " *)
>
>   #asigno la operación realizada al registro correspondiente
>
>   datos$montohs[i]<-monto_hs_temp
>
>   rm(temp)
>   rm(temp2)
>   rm(monto_hs_temp)
> }
>
>
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
> El 29 de noviembre de 2012 15:17, Pablo Andres Guzzi <guzzipa@gmail.com>escribió:
>
>> Bueno finalmente lo resolvi...
>> de la siguiente manera
>>
>>
>>
>>
>> ------------------------------------------------------------------------
>> ------------------------
>> 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)
>>
>> for (i in 1:n) {
>>   intervalo <- 60*60  #en segundos
>>   tarj <- datos$Tarjeta[i]
>>   t.i <- as.numeric(datos$tiempo[i])
>>   t.ini <- t.i-intervalo
>>   t.fin <- t.i
>>
>>   #me quedo con las trx de la tarjeta
>>   temp<-subset(datos,datos$Tarjeta==tarj )
>>   #me quedo con las trx en el intervalo que me interesa
>>   temp2<-subset(temp, tiempo >= t.ini & tiempo <= t.fin)
>>
>>   #hago la operacion que me interesa - en este caso sumo el importe
>>   monto_hs_temp<-sum(temp2$Importe)
>>
>>   #asigno la operacion realizada al registro correspondiente
>>   datos$montohs[i]<-monto_hs_temp
>>
>>   rm(temp)
>>   rm(temp2)
>>   rm(monto_hs_temp)
>> }
>>
>> datos  ##estado final del dataframe
>>
>> ------------------------------------------------------------------------
>> ------------------------
>>
>> anda perfecto!
>> lo que no se, es si se puede optimizar para que ande mas rapido, no es
>> lento con pocos datos. Pero no lo probe con 100000 transacciones todas
>> juntas. Despues les comento como funciona en datos masivos.
>>
>>
>> Abrazo
>>
>> Pablo A. Guzzi
>> guzzipa@gmail.com
>>
>>
>>
>>
>> El 28 de noviembre de 2012 13:05, Marcuzzi, Javier Rubén <
>> javier.ruben.marcuzzi@gmail.com> escribió:
>>
>> >   Estimado Pablo
>> >
>> > Entonces su problema tiene algo parecido a algo que me paso, en esta
>> > lista, había que buscarlo, me pasaron varias posibilidades de trabajo,
>> en
>> > mi caso eran días, pero en R la unidad de tiempo se cuenta a partir de
>> una
>> > fecha fija y creo que en segundos, en mi caso varias alternativas
>> fallaron,
>> > o daban resultados que al leerlos estaban bien, pero como yo conocía el
>> > valor real, encontré algunos errores de R, ni idea el porqué (incluso
>> > copiado de libro), pero la solución en mi caso es striptime(),
>> r-project se
>> > actualizó, mejoro, etc., pero una vez que tengo un código qua anda
>> prefiero
>> > no tocarlo.
>> >
>> > Le recomiendo que pruebe con pocos datos, según su versión de R, sistema
>> > operativo, datos, etc. No confíe en los resultados hasta leer varios
>> > originales, algún cálculo mental o con lápiz, y si está acorde
>> continuar,
>> > el trabajo con fechas por ahí da trabajo, aunque si todo anda bien es
>> > rapidísimo.
>> >
>> > El resto, intente la ayuda de Daniel, si se presentan inconvenientes
>> entre
>> > todos buscaremos alguna forma, pero sería recomendable intercambiar
>> códigos
>> > de R para ser precisos.
>> >
>> > Javier Marcuzzi
>> >
>> >  *From:* Pablo Andres Guzzi <guzzipa@gmail.com>
>> > *Sent:* Wednesday, November 28, 2012 12:05 PM
>> > *To:* javier.ruben.marcuzzi <javier.ruben.marcuzzi@gmail.com> ;
>> daniel319<daniel319@gmail.com>
>> > *Cc:* r-help-es <r-help-es@r-project.org>
>> > *Subject:* Re: [R-es] Hola, soy Pablo.
>> >
>> > Daniel, ya me pongo a investigar el paquete zoo y mas precisamente el
>> > comando rollappl.
>> >
>> > Javier, Necesito los movimientos de los ultimos 60 minutos segun la
>> fecha
>> > de la transaccion. Si la transaccion tiene fecha de realizacion
>> 28/11/2012
>> > a las 12:00:00 necesito que la variable en cuestion cuente las trx
>> > realizadas desde las 11:00:00 hasta las 12:00:00 del 28/11/2012
>> >
>> >
>> >
>> > Abrazo
>> >
>> > Pablo A. Guzzi
>> > guzzipa@gmail.com
>> >
>> >
>> >
>> >
>> > El 28 de noviembre de 2012 11:18, Usuario R <r.user.spain@gmail.com
>> >escribió:
>> >
>> >> Hola Pablo,
>> >>
>> >> Soy Patricia la administradora de la lista. Bienvenido y muchas gracias
>> >> por tu email.
>> >>
>> >> Quería también hacerte una pregunta, estas buscando trabajo? Yo soy
>> >> también licenciada en estadística y vivo en Berlin. Me mandan
>> muchisimas
>> >> ofertas de trabajo y te podría pasar algunas, si estas interesado.
>> Todas
>> >> las ofertas son para Alemania, sobretodo Berlin.
>> >>
>> >> Bueno, espero que la lista te ayude con tus dudas, un abrazo.
>> >>
>> >> Patricia
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> El 28 de noviembre de 2012 15:04, Pablo Andres Guzzi <
>> guzzipa@gmail.com>escribió:
>> >>
>> >>> Pablo A. Guzzi
>> >>
>> >>
>> >>
>> >>
>> >> --
>> >> Patricia García González
>> >>
>> >>
>> >>
>> >
>>
>>         [[alternative HTML version deleted]]
>>
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>

	[[alternative HTML version deleted]]

