Angela Andrea Camargo Sanabria
2014-Aug-25 22:16 UTC
[R-es] problema con campos que tienen formato fecha
Hola Javier, Muchas gracias por responder tan rápido! Yo trabajo en Mac OS X 10.9.4. Versión 0.98.953 de RStudio. Versión 3.0.2 (2013-09-25) de R. ## Este es el script que estoy trabajando. Se trata de una rutina para automatizar el cálculo de la duración del evento. setwd("/Users/angelacamargosanabria/Documents/ANGELITA/1-DOC/1-TESIS/4-PAPERS/1-Mamiferos/DATOS/Bases") BASE <- read.table("Todos2014.txt", header = TRUE, sep = "\t") #attach (BASE) dim (BASE) #library (lubridate) #convertir a formato de fecha y hora BASE <- cbind (BASE, (dmy_hms(paste(BASE$Date,BASE$Time,sep=" ")))) names (BASE)[12]<-"Time2" #empieza rutina para calcular duración de visitas visitas <- data.frame () n<-1 narbol <- 1 while (n <= dim(BASE)[1]) { m = n if (n < dim (BASE)[1]) { while (BASE$Registro[m+1] == "FALSE" & m+1 <= dim(BASE)[1]) {m=m+1} if (m+1 == dim (BASE)[1] & BASE$Registro[m+1]== "FALSE") {m+1}} if (m == n) { (visitas[narbol,1]<-0) } else {visitas[narbol,1]<-(BASE$Time2[m]-BASE$Time2[n])} visitas[narbol,2]<-BASE$SpeciesID[n] visitas[narbol,3]<-BASE$StationID[n] visitas[narbol,4]<-BASE$Time2[n] visitas[narbol,5]<-BASE$Time2[m] narbol <- narbol + 1 n = m+1 } colnames (visitas) <- c("Duracion", "Mammal", "Arbol", "FechaI", "FechaF") --- Gracias! ---- *Angela Andrea Camargo Sanabria* Estudiante Doctorado en Ciencias Biológicas Laboratorio de Ecología de poblaciones y comunidades tropicales Centro de Investigaciones en Ecosistemas (CIEco) UNAM, campus Morelia Antigua Carretera a Pátzcuaro # 8701 Col. Ex-Hacienda de San José de la Huerta, CP 58190 Morelia, Michoacán, México Tel.: 443-3222706 ext. 42511 e-mail: aacamargo en cieco.unam.mx skype: angela.camargo26 2014-08-25 17:01 GMT-05:00 "Marcuzzi, Javier Rubén" < javier.ruben.marcuzzi en gmail.com>:> Estimada Angela Andrea Camargo > > Las fechas con R dan trabajo, sería bueno que envíes un código R escrito > como ejemplo junto a las especificaciónes de su sistema operativo y > versión de R (porque me paso tener problemas con las fechas y > diferencias entre ambientes de trabajo). > > Javier Marcuzzi > > El 25/08/2014 06:46 p.m., Angela Andrea Camargo Sanabria escribió: > > Hola a todos, > > > > Tengo la siguiente inquietud, espero me puedan ayudar. > > > > Tengo una base de datos de la que estoy haciendo varios c?lculos. Uno de > > ellos es la diferencia entre tiempos para conocer la duraci?n de un > evento. > > Aqu? us? el paquete lubridate para tener fecha y hora en el formato > > adecuado. Cuando hago el calculo obtengo algo como esto: > > > >> (BASE$Time2[518]-BASE$Time2[516]) > > Time difference of 1.966667 mins > > > > lo cual est? bien. El problema es que quiero guardarlo en un data frame. > > Pero cuando lo guardo se me pierden las unidades y el formato de fecha. > > > > BASEFINAL > > V1 V2 V3 V4 > > V5 > > 88 1.966667 Eira barbara Posa1 1403765571 1403765689 > > > > V1 guarda el resultado de la resta, pero en unos casos son segundos y en > > otros minutos, c?mo lo puedo saber? > > Igual me pasa con las columnas V4 y V5 que son la fecha/hora de inicio y > de > > finalizaci?n del respectivo evento. Pero creo que esto ?ltimo lo puedo > > arreglar si aplico de vuelta la funci?n as.POSIXct(BASEFINAL[,5], > > origin="1970-01-01"). > > > > No s? si sea algo tan tonto como que no pueda usar un data frame para > > guardar mi base final. Agradezco su ayuda!!! > > > > Saludos, > > > > > > ---- > > *Angela Andrea Camargo Sanabria* > > Estudiante Doctorado en Ciencias Biol?gicas > > Laboratorio de Ecolog?a de poblaciones y comunidades tropicales > > Centro de Investigaciones en Ecosistemas (CIEco) > > UNAM, campus Morelia > > Antigua Carretera a P?tzcuaro # 8701 > > Col. Ex-Hacienda de San Jos? de la Huerta, CP 58190 > > Morelia, Michoac?n, M?xico > > Tel.: 443-3222706 ext. 42511 > > e-mail: aacamargo en cieco.unam.mx > > skype: angela.camargo26 > > > > [[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 > >[[alternative HTML version deleted]]
"Marcuzzi, Javier Rubén"
2014-Aug-25 22:29 UTC
[R-es] problema con campos que tienen formato fecha
Estimada Angela Yo podría probar su código en linux, pero sin algunos datos de ejemplo o alguna escritura de R donde dice el error, es poco lo que podemos hacer. Por ejemplo $date a mi me supo dar error, no comprendo porque lo trabaja de esa forma, no esta mal programar en R pero posiblemente se puede realizar de alguna forma más sencilla. Pero ¿donde le aparecen los errores como para poder duplicarlos y tratar de solucionarlos? En todos casos envíe un archivo txt con los primeros 5 registros. Javier Marcuzzi El 25/08/14 a las 19:16, Angela Andrea Camargo Sanabria escibió:> Hola Javier, > > Muchas gracias por responder tan rápido! > > Yo trabajo en Mac OS X 10.9.4. > Versión 0.98.953 de RStudio. > Versión 3.0.2 (2013-09-25) de R. > > ## > Este es el script que estoy trabajando. Se trata de una rutina para > automatizar el cálculo de la duración del evento. > > setwd("/Users/angelacamargosanabria/Documents/ANGELITA/1-DOC/1-TESIS/4-PAPERS/1-Mamiferos/DATOS/Bases") > > BASE <- read.table("Todos2014.txt", header = TRUE, sep = "\t") > #attach (BASE) > dim (BASE) > > #library (lubridate) > > #convertir a formato de fecha y hora > BASE <- cbind (BASE, (dmy_hms(paste(BASE$Date,BASE$Time,sep=" ")))) > > names (BASE)[12]<-"Time2" > > #empieza rutina para calcular duración de visitas > visitas <- data.frame () > > n<-1 > narbol <- 1 > > while (n <= dim(BASE)[1]) { > m = n > if (n < dim (BASE)[1]) { > while (BASE$Registro[m+1] == "FALSE" & m+1 <= dim(BASE)[1]) {m=m+1} > if (m+1 == dim (BASE)[1] & BASE$Registro[m+1]== "FALSE") {m+1}} > if (m == n) { (visitas[narbol,1]<-0) } > else > {visitas[narbol,1]<-(BASE$Time2[m]-BASE$Time2[n])} > visitas[narbol,2]<-BASE$SpeciesID[n] > visitas[narbol,3]<-BASE$StationID[n] > visitas[narbol,4]<-BASE$Time2[n] > visitas[narbol,5]<-BASE$Time2[m] > narbol <- narbol + 1 > n = m+1 > } > > colnames (visitas) <- c("Duracion", "Mammal", "Arbol", "FechaI", "FechaF") > > --- > Gracias! > > ---- > *Angela Andrea Camargo Sanabria* > Estudiante Doctorado en Ciencias Biológicas > Laboratorio de Ecología de poblaciones y comunidades tropicales > Centro de Investigaciones en Ecosistemas (CIEco) > UNAM, campus Morelia > Antigua Carretera a Pátzcuaro # 8701 > Col. Ex-Hacienda de San José de la Huerta, CP 58190 > Morelia, Michoacán, México > Tel.: 443-3222706 ext. 42511 > e-mail: aacamargo en cieco.unam.mx <mailto:aacamargo en cieco.unam.mx> > skype: angela.camargo26 > > > > 2014-08-25 17:01 GMT-05:00 "Marcuzzi, Javier Rubén" > <javier.ruben.marcuzzi en gmail.com > <mailto:javier.ruben.marcuzzi en gmail.com>>: > > Estimada Angela Andrea Camargo > > Las fechas con R dan trabajo, sería bueno que envíes un código R > escrito > como ejemplo junto a las especificaciónes de su sistema operativo y > versión de R (porque me paso tener problemas con las fechas y > diferencias entre ambientes de trabajo). > > Javier Marcuzzi > > El 25/08/2014 06:46 p.m., Angela Andrea Camargo Sanabria escribió: > > Hola a todos, > > > > Tengo la siguiente inquietud, espero me puedan ayudar. > > > > Tengo una base de datos de la que estoy haciendo varios > c?lculos. Uno de > > ellos es la diferencia entre tiempos para conocer la duraci?n de > un evento. > > Aqu? us? el paquete lubridate para tener fecha y hora en el formato > > adecuado. Cuando hago el calculo obtengo algo como esto: > > > >> (BASE$Time2[518]-BASE$Time2[516]) > > Time difference of 1.966667 mins > > > > lo cual est? bien. El problema es que quiero guardarlo en un > data frame. > > Pero cuando lo guardo se me pierden las unidades y el formato de > fecha. > > > > BASEFINAL > > V1 V2 V3 V4 > > V5 > > 88 1.966667 Eira barbara Posa1 1403765571 1403765689 > > > > V1 guarda el resultado de la resta, pero en unos casos son > segundos y en > > otros minutos, c?mo lo puedo saber? > > Igual me pasa con las columnas V4 y V5 que son la fecha/hora de > inicio y de > > finalizaci?n del respectivo evento. Pero creo que esto ?ltimo lo > puedo > > arreglar si aplico de vuelta la funci?n as.POSIXct(BASEFINAL[,5], > > origin="1970-01-01"). > > > > No s? si sea algo tan tonto como que no pueda usar un data frame > para > > guardar mi base final. Agradezco su ayuda!!! > > > > Saludos, > > > > > > ---- > > *Angela Andrea Camargo Sanabria* > > Estudiante Doctorado en Ciencias Biol?gicas > > Laboratorio de Ecolog?a de poblaciones y comunidades tropicales > > Centro de Investigaciones en Ecosistemas (CIEco) > > UNAM, campus Morelia > > Antigua Carretera a P?tzcuaro # 8701 > > Col. Ex-Hacienda de San Jos? de la Huerta, CP 58190 > > Morelia, Michoac?n, M?xico > > Tel.: 443-3222706 ext. 42511 <tel:443-3222706%20ext.%2042511> > > e-mail: aacamargo en cieco.unam.mx <mailto:aacamargo en cieco.unam.mx> > > skype: angela.camargo26 > > > > [[alternative HTML version deleted]] > > > > > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org <mailto: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 <mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]
"Marcuzzi, Javier Rubén"
2014-Aug-26 00:18 UTC
[R-es] problema con campos que tienen formato fecha
Estimada Angela Andrea Camargo Al final de todo escriba str(visitas) El formato es numérico, no fecha, yo no me encontré con ese problema solucionando con lubridate, en esos casos uso otra forma que no se la envío porque al ser otro sistema operativo posiblemente aporte un error, es probable que alguna forma de: http://cran.r-project.org/web/packages/lubridate/vignettes/lubridate.html le solucione el problema sin complicaciones (posiblemente mejor que con la alternativa que yo uso). Yo cuando agrego datos los realizo en data.frame, me creo las columnas y luego las "sumo" (cbind), utilizando as.numeric, as.character, pero as.Date suele dar problemas. Pero es solo una forma, no uso bucles, prefiero usar vectorizados, pero no esta mal su script. Javier Marcuzzi El 25/08/14 a las 19:39, Angela Andrea Camargo Sanabria escibió:> Hola Javier, > Te envío un text con las primeras filas de datos. > No me sale error. Simplemente es que cuando guardo en el data frame > (visitas), me cambia el formato. > Pues no sé de qué otra forma podría hacerlo. Quería automatizarlo en R > porque voy a estar leyendo bases como las del ejemplo, varias veces y > quería conseguirlo rápidamente (después de la inversión de tiempo > inicial!!!). Además, yo sólo manejo R entonces no sabría en qué otro > hacerlo. > > Gracias! > > > ---- > *Angela Andrea Camargo Sanabria* > Estudiante Doctorado en Ciencias Biológicas > Laboratorio de Ecología de poblaciones y comunidades tropicales > Centro de Investigaciones en Ecosistemas (CIEco) > UNAM, campus Morelia > Antigua Carretera a Pátzcuaro # 8701 > Col. Ex-Hacienda de San José de la Huerta, CP 58190 > Morelia, Michoacán, México > Tel.: 443-3222706 ext. 42511 > e-mail: aacamargo en cieco.unam.mx <mailto:aacamargo en cieco.unam.mx> > skype: angela.camargo26 > > > > 2014-08-25 17:29 GMT-05:00 "Marcuzzi, Javier Rubén" > <javier.ruben.marcuzzi en gmail.com > <mailto:javier.ruben.marcuzzi en gmail.com>>: > > Estimada Angela > > Yo podría probar su código en linux, pero sin algunos datos de > ejemplo o alguna escritura de R donde dice el error, es poco lo > que podemos hacer. > > Por ejemplo $date a mi me supo dar error, no comprendo porque lo > trabaja de esa forma, no esta mal programar en R pero posiblemente > se puede realizar de alguna forma más sencilla. > > Pero ¿donde le aparecen los errores como para poder duplicarlos y > tratar de solucionarlos? En todos casos envíe un archivo txt con > los primeros 5 registros. > > Javier Marcuzzi > > El 25/08/14 a las 19:16, Angela Andrea Camargo Sanabria escibió: >> Hola Javier, >> >> Muchas gracias por responder tan rápido! >> >> Yo trabajo en Mac OS X 10.9.4. >> Versión 0.98.953 de RStudio. >> Versión 3.0.2 (2013-09-25) de R. >> >> ## >> Este es el script que estoy trabajando. Se trata de una rutina >> para automatizar el cálculo de la duración del evento. >> >> setwd("/Users/angelacamargosanabria/Documents/ANGELITA/1-DOC/1-TESIS/4-PAPERS/1-Mamiferos/DATOS/Bases") >> >> BASE <- read.table("Todos2014.txt", header = TRUE, sep = "\t") >> #attach (BASE) >> dim (BASE) >> >> #library (lubridate) >> >> #convertir a formato de fecha y hora >> BASE <- cbind (BASE, (dmy_hms(paste(BASE$Date,BASE$Time,sep=" ")))) >> >> names (BASE)[12]<-"Time2" >> >> #empieza rutina para calcular duración de visitas >> visitas <- data.frame () >> >> n<-1 >> narbol <- 1 >> >> while (n <= dim(BASE)[1]) { >> m = n >> if (n < dim (BASE)[1]) { >> while (BASE$Registro[m+1] == "FALSE" & m+1 <= dim(BASE)[1]) >> {m=m+1} >> if (m+1 == dim (BASE)[1] & BASE$Registro[m+1]== "FALSE") {m+1}} >> if (m == n) { (visitas[narbol,1]<-0) } >> else >> {visitas[narbol,1]<-(BASE$Time2[m]-BASE$Time2[n])} >> visitas[narbol,2]<-BASE$SpeciesID[n] >> visitas[narbol,3]<-BASE$StationID[n] >> visitas[narbol,4]<-BASE$Time2[n] >> visitas[narbol,5]<-BASE$Time2[m] >> narbol <- narbol + 1 >> n = m+1 >> } >> >> colnames (visitas) <- c("Duracion", "Mammal", "Arbol", "FechaI", >> "FechaF") >> >> --- >> Gracias! >> >> ---- >> *Angela Andrea Camargo Sanabria* >> Estudiante Doctorado en Ciencias Biológicas >> Laboratorio de Ecología de poblaciones y comunidades tropicales >> Centro de Investigaciones en Ecosistemas (CIEco) >> UNAM, campus Morelia >> Antigua Carretera a Pátzcuaro # 8701 >> Col. Ex-Hacienda de San José de la Huerta, CP 58190 >> Morelia, Michoacán, México >> Tel.: 443-3222706 ext. 42511 >> e-mail: aacamargo en cieco.unam.mx <mailto:aacamargo en cieco.unam.mx> >> skype: angela.camargo26 >> >> >> >> 2014-08-25 17:01 GMT-05:00 "Marcuzzi, Javier Rubén" >> <javier.ruben.marcuzzi en gmail.com >> <mailto:javier.ruben.marcuzzi en gmail.com>>: >> >> Estimada Angela Andrea Camargo >> >> Las fechas con R dan trabajo, sería bueno que envíes un >> código R escrito >> como ejemplo junto a las especificaciónes de su sistema >> operativo y >> versión de R (porque me paso tener problemas con las fechas y >> diferencias entre ambientes de trabajo). >> >> Javier Marcuzzi >> >> El 25/08/2014 06:46 p.m., Angela Andrea Camargo Sanabria >> escribió: >> > Hola a todos, >> > >> > Tengo la siguiente inquietud, espero me puedan ayudar. >> > >> > Tengo una base de datos de la que estoy haciendo varios >> c?lculos. Uno de >> > ellos es la diferencia entre tiempos para conocer la >> duraci?n de un evento. >> > Aqu? us? el paquete lubridate para tener fecha y hora en el >> formato >> > adecuado. Cuando hago el calculo obtengo algo como esto: >> > >> >> (BASE$Time2[518]-BASE$Time2[516]) >> > Time difference of 1.966667 mins >> > >> > lo cual est? bien. El problema es que quiero guardarlo en >> un data frame. >> > Pero cuando lo guardo se me pierden las unidades y el >> formato de fecha. >> > >> > BASEFINAL >> > V1 V2 V3 V4 >> > V5 >> > 88 1.966667 Eira barbara Posa1 1403765571 1403765689 >> > >> > V1 guarda el resultado de la resta, pero en unos casos son >> segundos y en >> > otros minutos, c?mo lo puedo saber? >> > Igual me pasa con las columnas V4 y V5 que son la >> fecha/hora de inicio y de >> > finalizaci?n del respectivo evento. Pero creo que esto >> ?ltimo lo puedo >> > arreglar si aplico de vuelta la funci?n >> as.POSIXct(BASEFINAL[,5], >> > origin="1970-01-01"). >> > >> > No s? si sea algo tan tonto como que no pueda usar un data >> frame para >> > guardar mi base final. Agradezco su ayuda!!! >> > >> > Saludos, >> > >> > >> > ---- >> > *Angela Andrea Camargo Sanabria* >> > Estudiante Doctorado en Ciencias Biol?gicas >> > Laboratorio de Ecolog?a de poblaciones y comunidades tropicales >> > Centro de Investigaciones en Ecosistemas (CIEco) >> > UNAM, campus Morelia >> > Antigua Carretera a P?tzcuaro # 8701 >> > Col. Ex-Hacienda de San Jos? de la Huerta, CP 58190 >> > Morelia, Michoac?n, M?xico >> > Tel.: 443-3222706 ext. 42511 <tel:443-3222706%20ext.%2042511> >> > e-mail: aacamargo en cieco.unam.mx >> <mailto:aacamargo en cieco.unam.mx> >> > skype: angela.camargo26 >> > >> > [[alternative HTML version deleted]] >> > >> > >> > >> > _______________________________________________ >> > R-help-es mailing list >> > R-help-es en r-project.org <mailto: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 <mailto:R-help-es en r-project.org> >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> > >[[alternative HTML version deleted]]
Hola Angela, Una forma de resolver tu problema es utilizando la funcion difftime. En ?difftime hay varios ejemplos. Observa el argumento "units" en as.numeric(..., units = 'seconds'). Saludos, Jorge.- 2014-08-26 8:16 GMT+10:00 Angela Andrea Camargo Sanabria < angela.andrea.camargo en gmail.com>:> Hola Javier, > > Muchas gracias por responder tan rápido! > > Yo trabajo en Mac OS X 10.9.4. > Versión 0.98.953 de RStudio. > Versión 3.0.2 (2013-09-25) de R. > > ## > Este es el script que estoy trabajando. Se trata de una rutina para > automatizar el cálculo de la duración del evento. > > > setwd("/Users/angelacamargosanabria/Documents/ANGELITA/1-DOC/1-TESIS/4-PAPERS/1-Mamiferos/DATOS/Bases") > > BASE <- read.table("Todos2014.txt", header = TRUE, sep = "\t") > #attach (BASE) > dim (BASE) > > #library (lubridate) > > #convertir a formato de fecha y hora > BASE <- cbind (BASE, (dmy_hms(paste(BASE$Date,BASE$Time,sep=" ")))) > > names (BASE)[12]<-"Time2" > > #empieza rutina para calcular duración de visitas > visitas <- data.frame () > > n<-1 > narbol <- 1 > > while (n <= dim(BASE)[1]) { > m = n > if (n < dim (BASE)[1]) { > while (BASE$Registro[m+1] == "FALSE" & m+1 <= dim(BASE)[1]) {m=m+1} > if (m+1 == dim (BASE)[1] & BASE$Registro[m+1]== "FALSE") {m+1}} > > if (m == n) { (visitas[narbol,1]<-0) } > else > {visitas[narbol,1]<-(BASE$Time2[m]-BASE$Time2[n])} > visitas[narbol,2]<-BASE$SpeciesID[n] > visitas[narbol,3]<-BASE$StationID[n] > visitas[narbol,4]<-BASE$Time2[n] > visitas[narbol,5]<-BASE$Time2[m] > > narbol <- narbol + 1 > n = m+1 > } > > colnames (visitas) <- c("Duracion", "Mammal", "Arbol", "FechaI", "FechaF") > > --- > Gracias! > > ---- > *Angela Andrea Camargo Sanabria* > Estudiante Doctorado en Ciencias Biológicas > Laboratorio de Ecología de poblaciones y comunidades tropicales > Centro de Investigaciones en Ecosistemas (CIEco) > UNAM, campus Morelia > Antigua Carretera a Pátzcuaro # 8701 > Col. Ex-Hacienda de San José de la Huerta, CP 58190 > Morelia, Michoacán, México > Tel.: 443-3222706 ext. 42511 > e-mail: aacamargo en cieco.unam.mx > skype: angela.camargo26 > > > > 2014-08-25 17:01 GMT-05:00 "Marcuzzi, Javier Rubén" < > javier.ruben.marcuzzi en gmail.com>: > > > Estimada Angela Andrea Camargo > > > > Las fechas con R dan trabajo, sería bueno que envíes un código R escrito > > como ejemplo junto a las especificaciónes de su sistema operativo y > > versión de R (porque me paso tener problemas con las fechas y > > diferencias entre ambientes de trabajo). > > > > Javier Marcuzzi > > > > El 25/08/2014 06:46 p.m., Angela Andrea Camargo Sanabria escribió: > > > Hola a todos, > > > > > > Tengo la siguiente inquietud, espero me puedan ayudar. > > > > > > Tengo una base de datos de la que estoy haciendo varios c?lculos. Uno > de > > > ellos es la diferencia entre tiempos para conocer la duraci?n de un > > evento. > > > Aqu? us? el paquete lubridate para tener fecha y hora en el formato > > > adecuado. Cuando hago el calculo obtengo algo como esto: > > > > > >> (BASE$Time2[518]-BASE$Time2[516]) > > > Time difference of 1.966667 mins > > > > > > lo cual est? bien. El problema es que quiero guardarlo en un data > frame. > > > Pero cuando lo guardo se me pierden las unidades y el formato de fecha. > > > > > > BASEFINAL > > > V1 V2 V3 V4 > > > V5 > > > 88 1.966667 Eira barbara Posa1 1403765571 1403765689 > > > > > > V1 guarda el resultado de la resta, pero en unos casos son segundos y > en > > > otros minutos, c?mo lo puedo saber? > > > Igual me pasa con las columnas V4 y V5 que son la fecha/hora de inicio > y > > de > > > finalizaci?n del respectivo evento. Pero creo que esto ?ltimo lo puedo > > > arreglar si aplico de vuelta la funci?n as.POSIXct(BASEFINAL[,5], > > > origin="1970-01-01"). > > > > > > No s? si sea algo tan tonto como que no pueda usar un data frame para > > > guardar mi base final. Agradezco su ayuda!!! > > > > > > Saludos, > > > > > > > > > ---- > > > *Angela Andrea Camargo Sanabria* > > > Estudiante Doctorado en Ciencias Biol?gicas > > > Laboratorio de Ecolog?a de poblaciones y comunidades tropicales > > > Centro de Investigaciones en Ecosistemas (CIEco) > > > UNAM, campus Morelia > > > Antigua Carretera a P?tzcuaro # 8701 > > > Col. Ex-Hacienda de San Jos? de la Huerta, CP 58190 > > > Morelia, Michoac?n, M?xico > > > Tel.: 443-3222706 ext. 42511 > > > e-mail: aacamargo en cieco.unam.mx > > > skype: angela.camargo26 > > > > > > [[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 > > > > > > [[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]]
Angela Andrea Camargo Sanabria
2014-Aug-26 00:30 UTC
[R-es] problema con campos que tienen formato fecha
Gracias chicos! Ya en un rato prueba sus propuestas y les comento. Saludos, ---- *Angela Andrea Camargo Sanabria* Estudiante Doctorado en Ciencias Biológicas Laboratorio de Ecología de poblaciones y comunidades tropicales Centro de Investigaciones en Ecosistemas (CIEco) UNAM, campus Morelia Antigua Carretera a Pátzcuaro # 8701 Col. Ex-Hacienda de San José de la Huerta, CP 58190 Morelia, Michoacán, México Tel.: 443-3222706 ext. 42511 e-mail: aacamargo en cieco.unam.mx skype: angela.camargo26 2014-08-25 19:23 GMT-05:00 Jorge I Velez <jorgeivanvelez en gmail.com>:> Hola Angela, > Una forma de resolver tu problema es utilizando la funcion difftime. En > ?difftime hay varios ejemplos. Observa el argumento "units" en > as.numeric(..., units = 'seconds'). > Saludos, > Jorge.- > > > 2014-08-26 8:16 GMT+10:00 Angela Andrea Camargo Sanabria < > angela.andrea.camargo en gmail.com>: > >> Hola Javier, >> >> Muchas gracias por responder tan rápido! >> >> Yo trabajo en Mac OS X 10.9.4. >> Versión 0.98.953 de RStudio. >> Versión 3.0.2 (2013-09-25) de R. >> >> ## >> Este es el script que estoy trabajando. Se trata de una rutina para >> automatizar el cálculo de la duración del evento. >> >> >> setwd("/Users/angelacamargosanabria/Documents/ANGELITA/1-DOC/1-TESIS/4-PAPERS/1-Mamiferos/DATOS/Bases") >> >> BASE <- read.table("Todos2014.txt", header = TRUE, sep = "\t") >> #attach (BASE) >> dim (BASE) >> >> #library (lubridate) >> >> #convertir a formato de fecha y hora >> BASE <- cbind (BASE, (dmy_hms(paste(BASE$Date,BASE$Time,sep=" ")))) >> >> names (BASE)[12]<-"Time2" >> >> #empieza rutina para calcular duración de visitas >> visitas <- data.frame () >> >> n<-1 >> narbol <- 1 >> >> while (n <= dim(BASE)[1]) { >> m = n >> if (n < dim (BASE)[1]) { >> while (BASE$Registro[m+1] == "FALSE" & m+1 <= dim(BASE)[1]) {m=m+1} >> if (m+1 == dim (BASE)[1] & BASE$Registro[m+1]== "FALSE") {m+1}} >> >> if (m == n) { (visitas[narbol,1]<-0) } >> else >> {visitas[narbol,1]<-(BASE$Time2[m]-BASE$Time2[n])} >> visitas[narbol,2]<-BASE$SpeciesID[n] >> visitas[narbol,3]<-BASE$StationID[n] >> visitas[narbol,4]<-BASE$Time2[n] >> visitas[narbol,5]<-BASE$Time2[m] >> >> narbol <- narbol + 1 >> n = m+1 >> } >> >> colnames (visitas) <- c("Duracion", "Mammal", "Arbol", "FechaI", "FechaF") >> >> --- >> Gracias! >> >> ---- >> *Angela Andrea Camargo Sanabria* >> Estudiante Doctorado en Ciencias Biológicas >> Laboratorio de Ecología de poblaciones y comunidades tropicales >> Centro de Investigaciones en Ecosistemas (CIEco) >> UNAM, campus Morelia >> Antigua Carretera a Pátzcuaro # 8701 >> Col. Ex-Hacienda de San José de la Huerta, CP 58190 >> Morelia, Michoacán, México >> Tel.: 443-3222706 ext. 42511 >> e-mail: aacamargo en cieco.unam.mx >> skype: angela.camargo26 >> >> >> >> 2014-08-25 17:01 GMT-05:00 "Marcuzzi, Javier Rubén" < >> javier.ruben.marcuzzi en gmail.com>: >> >> > Estimada Angela Andrea Camargo >> > >> > Las fechas con R dan trabajo, sería bueno que envíes un código R escrito >> > como ejemplo junto a las especificaciónes de su sistema operativo y >> > versión de R (porque me paso tener problemas con las fechas y >> > diferencias entre ambientes de trabajo). >> > >> > Javier Marcuzzi >> > >> > El 25/08/2014 06:46 p.m., Angela Andrea Camargo Sanabria escribió: >> > > Hola a todos, >> > > >> > > Tengo la siguiente inquietud, espero me puedan ayudar. >> > > >> > > Tengo una base de datos de la que estoy haciendo varios c?lculos. Uno >> de >> > > ellos es la diferencia entre tiempos para conocer la duraci?n de un >> > evento. >> > > Aqu? us? el paquete lubridate para tener fecha y hora en el formato >> > > adecuado. Cuando hago el calculo obtengo algo como esto: >> > > >> > >> (BASE$Time2[518]-BASE$Time2[516]) >> > > Time difference of 1.966667 mins >> > > >> > > lo cual est? bien. El problema es que quiero guardarlo en un data >> frame. >> > > Pero cuando lo guardo se me pierden las unidades y el formato de >> fecha. >> > > >> > > BASEFINAL >> > > V1 V2 V3 V4 >> > > V5 >> > > 88 1.966667 Eira barbara Posa1 1403765571 1403765689 >> > > >> > > V1 guarda el resultado de la resta, pero en unos casos son segundos y >> en >> > > otros minutos, c?mo lo puedo saber? >> > > Igual me pasa con las columnas V4 y V5 que son la fecha/hora de >> inicio y >> > de >> > > finalizaci?n del respectivo evento. Pero creo que esto ?ltimo lo puedo >> > > arreglar si aplico de vuelta la funci?n as.POSIXct(BASEFINAL[,5], >> > > origin="1970-01-01"). >> > > >> > > No s? si sea algo tan tonto como que no pueda usar un data frame para >> > > guardar mi base final. Agradezco su ayuda!!! >> > > >> > > Saludos, >> > > >> > > >> > > ---- >> > > *Angela Andrea Camargo Sanabria* >> > > Estudiante Doctorado en Ciencias Biol?gicas >> > > Laboratorio de Ecolog?a de poblaciones y comunidades tropicales >> > > Centro de Investigaciones en Ecosistemas (CIEco) >> > > UNAM, campus Morelia >> > > Antigua Carretera a P?tzcuaro # 8701 >> > > Col. Ex-Hacienda de San Jos? de la Huerta, CP 58190 >> > > Morelia, Michoac?n, M?xico >> > > Tel.: 443-3222706 ext. 42511 >> > > e-mail: aacamargo en cieco.unam.mx >> > > skype: angela.camargo26 >> > > >> > > [[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 >> > >> > >> >> [[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]]
"Marcuzzi, Javier Rubén"
2014-Aug-26 02:45 UTC
[R-es] problema con campos que tienen formato fecha
Estimada Andrea Hace un tiempo (mucho) en esta lista consulte por fechas, difftime, etc. En esa oportunidad en mi computadora en algunos casos funcionaba correctamente y en otros no, lo solucione con striptime. Pero estoy de acuerdo con el aporte de Jorge, es de lo más lógico. De casualidad encontré esto: http://www.noamross.net/blog/2014/2/10/using-times-and-dates-in-r---presentation-code.html Javier Marcuzzi El 25/08/14 a las 21:23, Jorge I Velez escibió:> Hola Angela, > Una forma de resolver tu problema es utilizando la funcion difftime. > En ?difftime hay varios ejemplos. Observa el argumento "units" en > as.numeric(..., units = 'seconds'). > Saludos, > Jorge.- > > > 2014-08-26 8:16 GMT+10:00 Angela Andrea Camargo Sanabria > <angela.andrea.camargo en gmail.com > <mailto:angela.andrea.camargo en gmail.com>>: > > Hola Javier, > > Muchas gracias por responder tan rápido! > > Yo trabajo en Mac OS X 10.9.4. > Versión 0.98.953 de RStudio. > Versión 3.0.2 (2013-09-25) de R. > > ## > Este es el script que estoy trabajando. Se trata de una rutina para > automatizar el cálculo de la duración del evento. > > setwd("/Users/angelacamargosanabria/Documents/ANGELITA/1-DOC/1-TESIS/4-PAPERS/1-Mamiferos/DATOS/Bases") > > BASE <- read.table("Todos2014.txt", header = TRUE, sep = "\t") > #attach (BASE) > dim (BASE) > > #library (lubridate) > > #convertir a formato de fecha y hora > BASE <- cbind (BASE, (dmy_hms(paste(BASE$Date,BASE$Time,sep=" ")))) > > names (BASE)[12]<-"Time2" > > #empieza rutina para calcular duración de visitas > visitas <- data.frame () > > n<-1 > narbol <- 1 > > while (n <= dim(BASE)[1]) { > m = n > if (n < dim (BASE)[1]) { > while (BASE$Registro[m+1] == "FALSE" & m+1 <= dim(BASE)[1]) > {m=m+1} > if (m+1 == dim (BASE)[1] & BASE$Registro[m+1]== "FALSE") {m+1}} > > if (m == n) { (visitas[narbol,1]<-0) } > else > {visitas[narbol,1]<-(BASE$Time2[m]-BASE$Time2[n])} > visitas[narbol,2]<-BASE$SpeciesID[n] > visitas[narbol,3]<-BASE$StationID[n] > visitas[narbol,4]<-BASE$Time2[n] > visitas[narbol,5]<-BASE$Time2[m] > > narbol <- narbol + 1 > n = m+1 > } > > colnames (visitas) <- c("Duracion", "Mammal", "Arbol", "FechaI", > "FechaF") > > --- > Gracias! > > ---- > *Angela Andrea Camargo Sanabria* > Estudiante Doctorado en Ciencias Biológicas > Laboratorio de Ecología de poblaciones y comunidades tropicales > Centro de Investigaciones en Ecosistemas (CIEco) > UNAM, campus Morelia > Antigua Carretera a Pátzcuaro # 8701 > Col. Ex-Hacienda de San José de la Huerta, CP 58190 > Morelia, Michoacán, México > Tel.: 443-3222706 ext. 42511 <tel:443-3222706%20ext.%2042511> > e-mail: aacamargo en cieco.unam.mx <mailto:aacamargo en cieco.unam.mx> > skype: angela.camargo26 > > > > 2014-08-25 17:01 GMT-05:00 "Marcuzzi, Javier Rubén" < > javier.ruben.marcuzzi en gmail.com > <mailto:javier.ruben.marcuzzi en gmail.com>>: > > > Estimada Angela Andrea Camargo > > > > Las fechas con R dan trabajo, sería bueno que envíes un código R > escrito > > como ejemplo junto a las especificaciónes de su sistema operativo y > > versión de R (porque me paso tener problemas con las fechas y > > diferencias entre ambientes de trabajo). > > > > Javier Marcuzzi > > > > El 25/08/2014 06:46 p.m., Angela Andrea Camargo Sanabria escribió: > > > Hola a todos, > > > > > > Tengo la siguiente inquietud, espero me puedan ayudar. > > > > > > Tengo una base de datos de la que estoy haciendo varios > c?lculos. Uno de > > > ellos es la diferencia entre tiempos para conocer la duraci?n > de un > > evento. > > > Aqu? us? el paquete lubridate para tener fecha y hora en el > formato > > > adecuado. Cuando hago el calculo obtengo algo como esto: > > > > > >> (BASE$Time2[518]-BASE$Time2[516]) > > > Time difference of 1.966667 mins > > > > > > lo cual est? bien. El problema es que quiero guardarlo en un > data frame. > > > Pero cuando lo guardo se me pierden las unidades y el formato > de fecha. > > > > > > BASEFINAL > > > V1 V2 V3 V4 > > > V5 > > > 88 1.966667 Eira barbara Posa1 1403765571 1403765689 > > > > > > V1 guarda el resultado de la resta, pero en unos casos son > segundos y en > > > otros minutos, c?mo lo puedo saber? > > > Igual me pasa con las columnas V4 y V5 que son la fecha/hora > de inicio y > > de > > > finalizaci?n del respectivo evento. Pero creo que esto ?ltimo > lo puedo > > > arreglar si aplico de vuelta la funci?n as.POSIXct(BASEFINAL[,5], > > > origin="1970-01-01"). > > > > > > No s? si sea algo tan tonto como que no pueda usar un data > frame para > > > guardar mi base final. Agradezco su ayuda!!! > > > > > > Saludos, > > > > > > > > > ---- > > > *Angela Andrea Camargo Sanabria* > > > Estudiante Doctorado en Ciencias Biol?gicas > > > Laboratorio de Ecolog?a de poblaciones y comunidades tropicales > > > Centro de Investigaciones en Ecosistemas (CIEco) > > > UNAM, campus Morelia > > > Antigua Carretera a P?tzcuaro # 8701 > > > Col. Ex-Hacienda de San Jos? de la Huerta, CP 58190 > > > Morelia, Michoac?n, M?xico > > > Tel.: 443-3222706 ext. 42511 > > > e-mail: aacamargo en cieco.unam.mx <mailto:aacamargo en cieco.unam.mx> > > > skype: angela.camargo26 > > > > > > [[alternative HTML version deleted]] > > > > > > > > > > > > _______________________________________________ > > > R-help-es mailing list > > > R-help-es en r-project.org <mailto: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 <mailto: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 <mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]