[R-es] Colocar objeto Dates dentro de un vector.

Álvaro Hernández Vicente @|v@rohv @end|ng |rom um@e@
Mar Feb 25 11:00:14 CET 2020


Hola, Jaume:

El problema que tienes en tu enfoque y por lo que R no te deja añadir 
esa fecha al vector es que no es un valor lo que intentas sustituir. Tu 
'fecha' lo que contiene es un objeto 'Period' de lubridate y 'fecha.b' 
verás que es de tipo POSIXlt, que viene a ser internamente como una 
lista (mira ?DateTimeClasses). Puedes comprobarlo con:

str(fecha)
class(fecha.b)

Si quieres mantener tu enfoque (que muchas veces es lo que uno mejor 
entiende) podrías guardar tu fecha como una cadena (tu vector cambiará a 
tipo character) o guardarlo tal cual en el vector (que se te convertirá 
a numérico, como se guardan las fechas, desde 1970-01-01).

string <- paste0(original[1:3], collapse = "-")
fecha <- parse_date_time(string, orders = "%y-%j-%H%M")

# opción 1
v <- c(0, 0, 0)
v[1] <- as.character(fecha)
as_datetime(v)

# opción 2
v <- c(0, 0, 0)
v[1] <- fecha
as_datetime(v)

Un saludo
Álvaro

El 24/2/20 a las 21:54, Jaume Tormo escribió:
>   Muchas gracias,
>
> Probaré eso también y ya os cuento.
>
> Jaume.
>
> El lun., 17 feb. 2020 a las 22:10, Javier Marcuzzi (<
> javier.ruben.marcuzzi using gmail.com>) escribió:
>
>> Estimado Jaume Tormo
>>
>> En lo personal yo utilizo un enfoque como el que comenta Carlos Ortega, se
>> me ocurre que posiblemente funcione si a su código le coloca algo de
>> formato, me refiero a esta forma:
>>
>> as.Date("10/21/2012", format = "%m/%d/%Y")
>>
>> Javier Rubén Marcuzzi
>>
>> El lun., 17 feb. 2020 a las 17:55, Jaume Tormo (<jautorbla using gmail.com>)
>> escribió:
>>
>>> Carlos, muchas gracias, voy a probarlo.
>>> Pero me sigue intrigando por que no puedo ponerlo como elemento de un
>>> vector... Misterios del R. SI lo averiguo os lo digo.
>>>
>>> Jaume.
>>>
>>> El sáb., 15 feb. 2020 a las 19:08, Carlos Ortega (<
>>> cof using qualityexcellence.es>)
>>> escribió:
>>>
>>>> Hola,
>>>>
>>>> Una alternativa que te puede ayudar es enfocar el problema de esta otra
>>>> forma.
>>>> Puedes ir guardando tus vectores "original" en un data.frame y luego
>>>> convertirlo a fechas.
>>>>
>>>> Una vez tienes estas fechas, puedes hacer cálculos o extraer otras
>>>> variables.
>>>>
>>>>
>>>>> original<-c(2019,308,1700, 25)
>>>>> df <- data.frame(
>>>> +   Year = original[1],
>>>> +   DayNum = original[2],
>>>> +   Hour = original[3]
>>>> + )
>>>>> my_fecha <- strptime( paste(df$Year, df$DayNum, df$Hour, sep = ""),
>>>> "%Y%j%H" )
>>>>> my_fecha
>>>> [1] "2019-11-04 17:00:00 CET"
>>>>> my_fecha <- strptime( paste(original[1], original[2], original[3],
>>> sep =
>>>> ""), "%Y%j%H" )
>>>>> my_fecha
>>>> [1] "2019-11-04 17:00:00 CET"
>>>>
>>>> Gracias,
>>>> Carlos Ortega
>>>> www.qualityexcellence.es
>>>>
>>>>
>>>> El sáb., 15 feb. 2020 a las 12:45, Jaume Tormo (<jautorbla using gmail.com>)
>>>> escribió:
>>>>
>>>>> Hola,
>>>>>
>>>>> Estoy encontrando un problema al intentar poner un objeto Dates en un
>>>>> vector o dataframe.
>>>>> Mi ejemplo
>>>>> # preliminares
>>>>>    install.packages( lubridate ); library( lubridate )
>>>>>    v <- c(0, 0, 0)
>>>>>    original<-c(2019,308,1700, 25) # c(año, día del año, hora,
>>> temperatura)
>>>>> esto sale así de un sensor de temperatura
>>>>>
>>>>> # convertimos los datos originales en algo que entienda R
>>>>>    a <- years(original[1] )
>>>>>    d <- days(original[2]-1 ) # el -1 es un ajuste por como son los datos
>>>>> originales
>>>>>    h <- hours( substr(original[3], 1, 2) )
>>>>>    fecha <- a+d+h # Conseguimos una fecha completa
>>>>>    fecha.b <- as.Date(fecha, origin="0000-01-01" ) # convertimos la
>>> fecha
>>>>> en
>>>>> días del mes en lugar de días del año
>>>>> # mi problema
>>>>>    # Si asigno fecha a un elemento de un vector me sale 0
>>>>>    v[2] <- fecha
>>>>>    v[2]
>>>>>    # Si asigno fecha.b a un elemento de un vector me da un error
>>>>>    v[1] <- fecha.b
>>>>>    Me da cosas parecidas si intento asignar un lugar en un dataframe,
>>>>>
>>>>> Entiendo que as.Date convierte la fecha en algo que tiene más de un
>>>>> elemento ¿Puede ser eso? Si es así ¿Cómo veo lo que hay dentro del
>>> objeto
>>>>> para sacar solo lo que me interese?
>>>>>
>>>>> Muchas gracias.
>>>>>
>>>>> --
>>>>> Jaume Tormo.
>>>>> https://es.linkedin.com/in/jaumetormo
>>>>> https://acercad.wordpress.com/
>>>>>
>>>>>          [[alternative HTML version deleted]]
>>>>>
>>>>> _______________________________________________
>>>>> R-help-es mailing list
>>>>> R-help-es using r-project.org
>>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>>>
>>>>
>>>> --
>>>> Saludos,
>>>> Carlos Ortega
>>>> www.qualityexcellence.es
>>>>
>>>
>>> --
>>> Jaume Tormo.
>>> https://es.linkedin.com/in/jaumetormo
>>> https://acercad.wordpress.com/
>>>
>>>          [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> R-help-es mailing list
>>> R-help-es using r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es