Hola con todos... Estoy realizando un seguimiento a clientes en negociaciones forex. La idea es poder analizar el comportamiento entre cotizaciones de compra y de venta. Tengo las bases de todas las negociaciones realizadas. Mi margen de utilidad en cotización es la diferencia entre la venta y la compra. Si las negociaciones se realizan el mismo dia, no tengo problema, ya que mis registros estan por fecha y tan solo realizo la resta entre el campo de ventas y de compras. El problema es cuando las negociaciones no se realizan el mismo dia. Voy a tener un registro de la compra y otro registro de la venta y no puedo realizar la resta directa. Lo que tengo que hacer es una manipulación de los datos de tal forma que pueda hacer esta resta. Un ejemplo de los datos es el siguiente: fecha venta compra dia1 1.34 NULL dia2 NULL 1.32 dia3 1.35 NULL dia4 NULL 1.31 La idea es que pueda llegar a tener esto: fecha venta compra dia1 1.34 NULL dia2 1.34 1.32 (arrastra la venta anterior) dia3 1.35 NULL dia4 1.35 1.31 (arrastra la venta anterior) con esto eliminaria las compras que tengan NULL y realizaria la resta. La solución debe ser genérica, ya que las negociaciones no son necesariamente en dias consecutivos, de tal forma que no toma la información del día anterior, sino mas bien de la última negociación. Esto se complica un poco mas, si se tiene una negociación del mismo tipo, es decir dos o mas ventas (o compras) consecutivas, ya que en ese caso se debe tener un promedio de cotizaciones. Agradezco sus sugerencias. Attt. Patricio Fuenmayor V. [[alternative HTML version deleted]]
Patricio, te sugiero echar un vistazo a las herramientas de predicciones de valores ausentes en series temporales del paquete zoo (na.locf , na.approx, o na.spline). Creo que pueden proporcionarte un método genérico para solucionar tu problema. Aquí te mando un ejemplo de utilización de na.locf aplicado a una serie similar a la que mandaste y que viene en el fichero adjunto "datos". > require(zoo) > datos=read.table(file="datos",header=TRUE, na.strings = "NULL") > datos fecha venta compra 1 dia1 1.34 NA 2 dia2 NA 1.32 3 dia3 1.35 NA 4 dia4 NA 1.31 5 dia5 NA 1.32 6 dia6 1.38 NA 7 dia7 1.34 NA 8 dia8 NA 1.36 > series=zoo(datos[-1],datos[,1]) > na.locf(series,fromLast=FALSE,na.rm =FALSE) venta compra dia1 1.34 NA dia2 1.34 1.32 dia3 1.35 1.32 dia4 1.35 1.31 dia5 1.35 1.32 dia6 1.38 1.32 dia7 1.34 1.32 dia8 1.34 1.36 Un saludo. Olivier -- ____________________________________ Olivier G. Nuñez Email: onunez en iberstat.es Tel : +34 663 03 69 09 Web: http://www.iberstat.es ____________________________________ El 08/12/2010, a las 14:54, Patricio Fuenmayor Viteri escribió:> fecha venta compra > dia1 1.34 NULL > dia2 NULL 1.32 > dia3 1.35 NULL > dia4 NULL 1.31
.. Esta vez con el fichero adjunto. Un saludo. -- ____________________________________ Olivier G. Nuñez Email: onunez en iberstat.es Tel : +34 663 03 69 09 Web: http://www.iberstat.es ____________________________________ ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: datos Type: application/octet-stream Size: 180 bytes Desc: no disponible URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20101208/6dc9a906/attachment.obj> ------------ próxima parte ------------