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

2020-03-05 Por tema Jaume Tormo
Hola a todos,

Álvaro, has dado en el clavo, eso es lo que pasaba. Me imagino que no hay
manera de meter una lista dentro de un vector.
Al final he usado tu sugerencia. Y me queda así:

# 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="-01-01" ) # convertimos la fecha en
días del mes en lugar de días del año
  fecha.c <- as.character(fecha.b)

# Ahora sí que funciona
  v[3] <- fecha.c
  v
  [1] "0"   "0"   "2019-11-04 17:00:00"

Muchas gracias a todos.

Jaume.



El mar., 25 feb. 2020 a las 11:01, Álvaro Hernández Vicente ()
escribió:

> 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.marcu...@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 ()
> >> 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 (<
> >>> c...@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 ( >)
>  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="-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 

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

2020-02-25 Por tema Álvaro Hernández Vicente
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.marcu...@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 ()
>> 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 (<
>>> c...@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 ()
 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="-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@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@r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org

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

2020-02-17 Por tema Javier Marcuzzi
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 ()
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 (<
> c...@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 ()
> > 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="-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@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@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


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

2020-02-17 Por tema Jaume Tormo
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 ()
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 ()
> 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="-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@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@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


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

2020-02-15 Por tema Carlos Ortega
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 ()
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="-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@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


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

2020-02-15 Por tema Jaume Tormo
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="-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@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es