Jesús Para Fernández
2017-Nov-06 12:23 UTC
[R-es] Añadir filas hasta que se acabe un proceso
Gracias a todos Isidro, para esa solucion que planteas voy a complementarla con las fucniones de lubridate interval y %within%. Un saludo Jesús ________________________________ De: Isidro Hidalgo Arellano <ihidalgo en jccm.es> Enviado: lunes, 6 de noviembre de 2017 13:06 Para: 'Jesús Para Fernández'; r-help-es en r-project.org Asunto: RE: [R-es] Añadir filas hasta que se acabe un proceso Monta una función cuyo input sea una hora determinada y que te cuente los procesos activos para esa hora (suma de columna hora de inicio mayor o igual que input, y a la vez columna hora de finalización menor que input). Monta la función para que el output sea un número. Finalmente lanza un sapply con argumentos "las horas que te interesen" y la función que has montado previamente. Un saludo Isidro Hidalgo Arellano Observatorio del Mercado de Trabajo Consejería de Economía, Empresas y Empleo http://www.castillalamancha.es/ -----Mensaje original----- De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de Jesús Para Fernández Enviado el: lunes, 06 de noviembre de 2017 12:37 Para: r-help-es en r-project.org Asunto: [R-es] Añadir filas hasta que se acabe un proceso Buenas, Supongamos que tengo un data.frame con la siguietne forma: proceso fecha inicio fecha fin 1 2017/05/01 10:00 2017/05/01 14:00 2 2017/05/01 11:00 2017/05/01 12:00 3 2017/05/01 09:00 2017/05/01 15:00 Lo que quiero es trasnformar el data.frame en un data.frame que tenga la siguiente estructura Fecha procesosActivos 2017/05/01 09:00 1 2017/05/01 10:00 2 2017/05/01 11:00 3 2017/05/01 12:00 2 2017/05/01 13:00 2 2017/05/01 14:00 1 2017/05/01 15:00 0 Se como hacerlo, pero a base d ebucles for y de manera poco eficiente. ?Se os ocure alguna manera mas eficiente para hacerlo? Gracias Jes?s [[alternative HTML version deleted]] [[alternative HTML version deleted]]
Hola¿qué te parece así? library (tidyr) datos1<-gather(datos, "tipo_fecha", "Fecha",2:3)> head (datos1) proceso. tipo_fecha Fecha1 1 fecha.inico 01/05/2017 10:00 2 2 fecha.inico 01/05/2017 11:00 3 3 fecha.inico 01/05/2017 9:00 4 1 fecha.fin 25/05/2017 14:005 2 fecha.fin 25/05/2017 : 12:006 3 fecha.fin 25/05/2017 :15:00El Lunes 6 de noviembre de 2017 13:23, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió: Gracias a todos Isidro, para esa solucion que planteas voy a complementarla con las fucniones de lubridate interval y %within%. Un saludo Jesús ________________________________ De: Isidro Hidalgo Arellano <ihidalgo en jccm.es> Enviado: lunes, 6 de noviembre de 2017 13:06 Para: 'Jesús Para Fernández'; r-help-es en r-project.org Asunto: RE: [R-es] Añadir filas hasta que se acabe un proceso Monta una función cuyo input sea una hora determinada y que te cuente los procesos activos para esa hora (suma de columna hora de inicio mayor o igual que input, y a la vez columna hora de finalización menor que input). Monta la función para que el output sea un número. Finalmente lanza un sapply con argumentos "las horas que te interesen" y la función que has montado previamente. Un saludo Isidro Hidalgo Arellano Observatorio del Mercado de Trabajo Consejería de Economía, Empresas y Empleo http://www.castillalamancha.es/ -----Mensaje original----- De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de Jesús Para Fernández Enviado el: lunes, 06 de noviembre de 2017 12:37 Para: r-help-es en r-project.org Asunto: [R-es] Añadir filas hasta que se acabe un proceso Buenas, Supongamos que tengo un data.frame con la siguietne forma: proceso fecha inicio fecha fin 1 2017/05/01 10:00 2017/05/01 14:00 2 2017/05/01 11:00 2017/05/01 12:00 3 2017/05/01 09:00 2017/05/01 15:00 Lo que quiero es trasnformar el data.frame en un data.frame que tenga la siguiente estructura Fecha procesosActivos 2017/05/01 09:00 1 2017/05/01 10:00 2 2017/05/01 11:00 3 2017/05/01 12:00 2 2017/05/01 13:00 2 2017/05/01 14:00 1 2017/05/01 15:00 0 Se como hacerlo, pero a base d ebucles for y de manera poco eficiente. ?Se os ocure alguna manera mas eficiente para hacerlo? Gracias Jes?s [[alternative HTML version deleted]] [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]
Hola, Esta sería una forma...> Lines <-"+ proceso fecha_inicio hora_inicio fecha_fin hora_fin + 1 2017/05/01 10:00 2017/05/01 14:00 + 2 2017/05/01 11:00 2017/05/01 12:00 + 3 2017/05/01 09:00 2017/05/01 15:00 + "> > DF <- read.table(textConnection(Lines), header = TRUE) > > library(lubridate) > DF$fechahora_ini <- ymd_hm(paste(DF$fecha_inicio, DF$hora_inicio, sep =""))> DF$fechahora_end <- ymd_hm(paste(DF$fecha_fin, DF$hora_fin, sep =" ")) > > df_ini <- data.frame(proc = DF$proceso, fechour = DF$fechahora_ini) > df_end <- data.frame(proc = DF$proceso, fechour = DF$fechahora_end) > > library(dplyr) > df_end <- bind_rows(df_ini, df_end) %>% arrange(fechour) > df_endproc fechour 1 3 2017-05-01 09:00:00 2 1 2017-05-01 10:00:00 3 2 2017-05-01 11:00:00 4 2 2017-05-01 12:00:00 5 1 2017-05-01 14:00:00 6 3 2017-05-01 15:00:00>Gracias, Carlos Ortega www.qualityexcellence.es El 6 de noviembre de 2017, 22:04, jose luis via R-help-es < r-help-es en r-project.org> escribió:> Hola¿qué te parece así? > > library (tidyr) > datos1<-gather(datos, "tipo_fecha", "Fecha",2:3) > > head (datos1) proceso. tipo_fecha Fecha1 1 > fecha.inico 01/05/2017 10:00 2 2 fecha.inico > 01/05/2017 11:00 3 3 fecha.inico 01/05/2017 9:00 4 > 1 fecha.fin 25/05/2017 14:005 2 fecha.fin > 25/05/2017 : 12:006 3 fecha.fin 25/05/2017 :15:00 > > El Lunes 6 de noviembre de 2017 13:23, Jesús Para Fernández < > j.para.fernandez en hotmail.com> escribió: > > > Gracias a todos > > Isidro, para esa solucion que planteas voy a complementarla con las > fucniones de lubridate interval y %within%. > > Un saludo > Jesús > > > ________________________________ > De: Isidro Hidalgo Arellano <ihidalgo en jccm.es> > Enviado: lunes, 6 de noviembre de 2017 13:06 > Para: 'Jesús Para Fernández'; r-help-es en r-project.org > Asunto: RE: [R-es] Añadir filas hasta que se acabe un proceso > > Monta una función cuyo input sea una hora determinada y que te cuente los > procesos activos para esa hora (suma de columna hora de inicio mayor o > igual que input, y a la vez columna hora de finalización menor que input). > Monta la función para que el output sea un número. > Finalmente lanza un sapply con argumentos "las horas que te interesen" y > la función que has montado previamente. > Un saludo > > Isidro Hidalgo Arellano > Observatorio del Mercado de Trabajo > Consejería de Economía, Empresas y Empleo > http://www.castillalamancha.es/ > > > > -----Mensaje original----- > De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de Jesús > Para Fernández > Enviado el: lunes, 06 de noviembre de 2017 12:37 > Para: r-help-es en r-project.org > Asunto: [R-es] Añadir filas hasta que se acabe un proceso > > Buenas, > > Supongamos que tengo un data.frame con la siguietne forma: > > proceso fecha inicio fecha fin > 1 2017/05/01 10:00 2017/05/01 14:00 > 2 2017/05/01 11:00 2017/05/01 12:00 > 3 2017/05/01 09:00 2017/05/01 15:00 > > Lo que quiero es trasnformar el data.frame en un data.frame que tenga la > siguiente estructura > > Fecha procesosActivos > 2017/05/01 09:00 1 > 2017/05/01 10:00 2 > 2017/05/01 11:00 3 > 2017/05/01 12:00 2 > 2017/05/01 13:00 2 > 2017/05/01 14:00 1 > 2017/05/01 15:00 0 > > Se como hacerlo, pero a base d ebucles for y de manera poco eficiente. ?Se > os ocure alguna manera mas eficiente para hacerlo? > > Gracias > Jes?s > > > > > [[alternative HTML version deleted]] > > > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]