Hola Javier,
Te sugeriria, mas por seguridad que por cualquier otra razon, que usaras
Edad_dias <- with(Animal_P, abs(F_P - F_n))
en lugar de lo que tienes. Seguramente F_P es sempre mayor que F_n, pero
con abs() te ahorrarias tener que revisar (de nuevo, solo por seguridad)
cada una de las entradas de ambas variables.
En cuanto al por que no funciona lo demas, podria estar relacionado al
''locale'' que estas usando. Dale una mirada a
?Sys.getlocale
?Sys.setlocale
Feliz tarde,
Jorge
PS: Estoy haciendo CC esta vez. De esta forma incrementas las
posibilidades de tener una mejor respuesta ;-)
2011/9/21 Javier Rubén Marcuzzi <>
> Un comentario
>
> Gracias a la colaboración de la lista pude continuar mis tareas, pero hay
> algunos inconvenientes en el trabajo con fechas, incluso algunas fechas
> suelen ser erradas (mal convertidas, o yo utilizo mal chron).
>
> Lo que a mi ahora me funciona es lo siguiente:
>
> Animal$F_n<- strptime(Animal$F_n, format="%d/%m/%Y")
> Edad_dias <- Animal_P$F_P - Animal_P$F_n
>
> No pregunten el porqué, tengo ejemplos de libros que dejaron de funcionar,
> eso escapa a mis conocimientos.
>
>
> Javier
>
>
>
>
> *From:* Jorge I Velez <jorgeivanvelez@gmail.com>
> *Sent:* Tuesday, September 20, 2011 1:18 AM
> *To:* Javier Rubén Marcuzzi <javier.ruben.marcuzzi@gmail.com>
> *Subject:* Re: [R-es] fechas ??
>
> Hola Javier,
>
> Si lo ultimo que mencionas es lo que estas manejando, entonces
>
> with(tusdatos, as.numeric(fecha1 - fecha2))
>
> sera mas que suficiente.
>
> Un saludo,
> Jorge
>
>
> 2011/9/19 Javier Rubén Marcuzzi <>
>
>> Gracias Jorge y Oliver
>>
>> diff efectivamente me da la diferencia en días, funciona distinto a
como
>> yo pensaba pero mientras que pueda hacer los cálculos. Yo pensaba en
fecha1
>> colocar una columna de un data.frame, en fecha2 otra columna del
data.frame,
>> y comparar los días que entre ambas, de acuerdo la diferencia de esos
días
>> comenzar a agrupar, analizar, pensar
>>
>> Con diff voy a estudiar como hacerlo, un bucle, apply, alguna forma.
>>
>> Mientras escribía me llego la sugerencia de Oliver y también me
funciono.
>>
>> Ya tengo dos alternativas para continuar mi trabajo.
>>
>> Mil gracias.
>>
>> Javier
>>
>> *From:* Jorge I Velez <jorgeivanvelez@gmail.com>
>> *Sent:* Monday, September 19, 2011 7:48 PM
>> *To:* Javier Rubén Marcuzzi <javier.ruben.marcuzzi@gmail.com>
>> *Subject:* Re: [R-es] fechas ??
>>
>> Hola Javier,
>>
>> No sabria decirte con exactitud por que las cosas ocurren de esta
manera.
>> Sin embargo, _creo_ que se debe al uso de difftime(). Si usas diff(),
todo
>> sale _bien_:
>>
>> > fechas1 <-c(''18/12/1993'',
''27/11/1975'')
>> > fechas2 <-strptime(fechas1, format="%d/%m/%Y")
>> > fechas2
>> [1] "1993-12-18" "1975-11-27"
>> > fechas1
>> [1] "18/12/1993" "27/11/1975"
>> > diff(fechas2)
>> Time difference of -6596 days
>> > as.numeric(diff(fechas2))
>> [1] -6596
>> > abs(as.numeric(diff(fechas2)))
>> [1] 6596
>>
>> Un saludo,
>> Jorge
>>
>> R version 2.13.1 Patched (2011-08-02 r56617)
>> Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
>>
>> locale:
>> [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
>>
>> attached base packages:
>> [1] stats graphics grDevices utils datasets methods base
>>
>> loaded via a namespace (and not attached):
>> [1] tools_2.13.1
>>
>>
>> 2011/9/19 Javier Rubén Marcuzzi <>
>>
>>> Hola a todos:
>>>
>>> Tengo un problema con las fechas, básicamente necesito una
diferencia en
>>> días y siempre se sale en segundos. Salvo un ejemplo copiado de un
libro,
>>> pero yo necesito procesar los datos propios. Les paso el código en
R (copiar
>>> y pegar, son solo dos días que se comparan) y al final como me
salen los
>>> resultados porque es medio complicada mi redacción.
>>>
>>> ¿Alguna idea?
>>>
>>> fechas1 <-c(''18/12/1993'',
''27/11/1975'')
>>> fechas2 <-strptime(fechas1, format="%d/%m/%Y")
>>> fechas2
>>> fechas3 <-c(''18/12/1993'',
''27/11/1976'')
>>> fechas4 <-strptime(fechas3, format="%d/%m/%Y")
>>> fechas4
>>> as.numeric(difftime(fechas4,fechas2))
>>> diferencia_seg <-(difftime(fechas4,fechas2))
>>> diferencia_dias <- as.difftime((difftime(fechas4,fechas2)),
format="%d")
>>> diferencia_seg
>>> diferencia_dias
>>> ##### otra forma que tampoco me funciona, o dicho de otra forma, el
>>> resultado en seg
>>> diferencia <- as.POSIXct(fechas2) - as.POSIXct(fechas4)
>>> diferencia
>>> # pero
>>> as.POSIXct("2001-04-26") -
as.POSIXct("2001-02-26")
>>> # me da los resultados en días como yo quiero para mis datos
>>> primero<-as.POSIXct("2001-04-26")
>>> segundo<-as.POSIXct("2001-02-26")
>>> primero-segundo
>>> #da el resultado en días, sin embargo como está aquí abajo (mis
datos)
>>> primero2<-as.POSIXct(fechas2)
>>> segundo2<-as.POSIXct(fechas4)
>>> primero2-segundo2
>>> # da el resultado en segundos
>>>
>>> -------------------------- Ahora como me sale en la pantalla
>>>
>>> > fechas1 <-c(''18/12/1993'',
''27/11/1975'')
>>> > fechas2 <-strptime(fechas1, format="%d/%m/%Y")
>>> > fechas2
>>> [1] "1993-12-18" "1975-11-27"
>>> > fechas3 <-c(''18/12/1993'',
''27/11/1976'')
>>> > fechas4 <-strptime(fechas3, format="%d/%m/%Y")
>>> > fechas4
>>> [1] "1993-12-18" "1976-11-27"
>>> > as.numeric(difftime(fechas4,fechas2))
>>> [1] 0 31622400
>>> > diferencia_seg <-(difftime(fechas4,fechas2))
>>> > diferencia_dias <- as.difftime((difftime(fechas4,fechas2)),
>>> format="%d")
>>> > diferencia_seg
>>> Time differences in secs
>>> [1] 0 31622400
>>> attr(,"tzone")
>>> [1] ""
>>> > diferencia_dias
>>> Time differences in secs
>>> [1] 0 31622400
>>> attr(,"tzone")
>>> [1] ""
>>> > ##### otra forma que tampoco me funciona, o dicho de otra
forma, el
>>> resultado en seg
>>> > diferencia <- as.POSIXct(fechas2) - as.POSIXct(fechas4)
>>> > diferencia
>>> Time differences in secs
>>> [1] 0 -31622400
>>> attr(,"tzone")
>>> [1] ""
>>> > # pero
>>> > as.POSIXct("2001-04-26") -
as.POSIXct("2001-02-26")
>>> Time difference of 59 days
>>> > # me da los resultados en días como yo quiero para mis datos
>>> > primero<-as.POSIXct("2001-04-26")
>>> > segundo<-as.POSIXct("2001-02-26")
>>> > primero-segundo
>>> Time difference of 59 days
>>> > #da el resultado en días, sin embargo con está aquí abajo (mis
datos)
>>> > primero2<-as.POSIXct(fechas2)
>>> > segundo2<-as.POSIXct(fechas4)
>>> > primero2-segundo2
>>> Time differences in secs
>>> [1] 0 -31622400
>>> attr(,"tzone")
>>> [1] ""
>>> > # da el resultado en segundos
>>> [[alternative HTML version deleted]]
>>>
>>>
>>> _______________________________________________
>>> R-help-es mailing list
>>> R-help-es@r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>>
>>
>
>
[[alternative HTML version deleted]]