Convierta la columna del marco de datos a fecha y hora en R

Los objetos de fecha de tipo string no ofrecen un fácil análisis y manipulación de los componentes. La conversión de objetos de fecha a objetos POSIXct o POSIXlt puede ayudar en la fácil conversión de fechas a los formatos requeridos con zonas horarias deseables. En este artículo, discutiremos cómo convertir la columna del marco de datos en una string en el lenguaje de programación R.

Método 1: Usar el método as.POSIXct()

Una string de fecha se puede convertir primero en objetos POSIXct y luego se puede realizar la aritmética básica fácilmente. Los objetos POSIXct facilitan el proceso de las operaciones matemáticas, ya que se basan en segundos como la unidad principal de gestión del tiempo. Las fechas se convierten a la zona horaria estándar, UTC. Un objeto de fecha de tipo string se puede convertir en un objeto POSIXct, usándolo como método POSIXct (fecha) en R. 

1 hora = 1 * 60 * 60 segundos

1 minuto = 1 * 60 segundos

“ct” en POSIXct denota el tiempo del calendario, almacena la cantidad de segundos desde el origen. Toma como entrada el objeto de fecha de string y el especificador de formato. POSIXct almacena la fecha y la hora en segundos con el número de segundos a partir del 1 de enero de 1970.

as.POSIXct( date, format)

Código:

R

# declaring a data frame
data_frame = data.frame(col1 = letters[1:4],
                        col2 = c(5:8) ,
                        col3 = c("2021-05-05 01:04:34",
                                 "2021-03-06 03:14:44",
                                 "2021-03-11 07:22:48",
                                 "2021-02-02 11:54:56"))
  
print ("Original dataframe")
print (data_frame)
sapply(data_frame, class)
  
# converting to datetime object
data_frame[['col3']] <- as.POSIXct(data_frame[['col3']],
                                   format = "%Y-%m-%d %H:%M:%S")
  
print ("Modified dataframe")
print (data_frame)
sapply(data_frame, class)

Producción:

[1] "Original dataframe"
 col1 col2                col3
1    a    5 2021-05-05 01:04:34
2    b    6 2021-03-06 03:14:44
3    c    7 2021-03-11 07:22:48
4    d    8 2021-02-02 11:54:56
    col1      col2      col3
"factor" "integer"  "factor"
[1] "Modified dataframe"
 col1 col2                col3
1    a    5 2021-05-05 01:04:34
2    b    6 2021-03-06 03:14:44
3    c    7 2021-03-11 07:22:48
4    d    8 2021-02-02 11:54:56
$col1
[1] "factor"

$col2
[1] "integer"

$col3
[1] "POSIXct" "POSIXt"

Método 2: Usar el método strptime()

El método strptime en R se usa para convertir directamente vectores de caracteres (de una variedad de formatos) al formato POSIXlt. strptime es más rápido que el enfoque anterior porque strptime solo maneja la entrada de caracteres. 

Sintaxis: strptime(fecha, formato, tz = “”)

Parámetros: 

  • fecha: la fecha en formato de caracteres
  • formato: el especificador de formato de la fecha de entrada
  • tz – zona horaria (opcional)

Código:

R

# declaring a data frame
data_frame = data.frame(col1 = letters[1:4],
                        col2 = c(5:8) ,
                        col3 = c("2021-05-05 01:04:34",
                                 "2021-03-06 03:14:44",
                                 "2021-03-11 07:22:48",
                                 "2021-02-02 11:54:56"))
  
print ("Original dataframe")
print (data_frame)
sapply(data_frame, class)
  
# converting to datetime object
data_frame[['col3']] <- strptime(data_frame[['col3']],
                                 format = "%Y-%m-%d %H:%M:%S")
  
print ("Modified dataframe")
print (data_frame)
sapply(data_frame, class)

Producción:

[1] "Original dataframe"
 col1 col2                col3
1    a    5 2021-05-05 01:04:34
2    b    6 2021-03-06 03:14:44
3    c    7 2021-03-11 07:22:48
4    d    8 2021-02-02 11:54:56
    col1      col2      col3
"factor" "integer"  "factor"
[1] "Modified dataframe"
 col1 col2                col3
1    a    5 2021-05-05 01:04:34
2    b    6 2021-03-06 03:14:44
3    c    7 2021-03-11 07:22:48
4    d    8 2021-02-02 11:54:56
$col1
[1] "factor"

$col2
[1] "integer"

$col3
[1] "POSIXlt" "POSIXt"

Los especificadores de formato indican la forma de analizar el objeto de fecha de carácter. Convierte el objeto de fecha y hora en el objeto YYYY-MM-DD HH:MM:SS. 

R

# declaring a data frame
data_frame = data.frame(col1 = letters[1:4], 
                        col2 = c(5:8) , 
                        col3 = c("15/12/2021 01:04:34",
                                 "06/10/2021 03:14:44",
                                 "11/04/2021 07:22:48",
                                 "28/01/1994 11:54:56"))
print ("Original dataframe")
print (data_frame)
sapply(data_frame, class)
  
# converting to datetime object
data_frame[['col3']] <- strptime(data_frame[['col3']],
                                 format = "%d/%m/%Y %H:%M:%S")
  
print ("Modified dataframe")
print (data_frame)
sapply(data_frame, class)

Producción:

[1] "Original dataframe"
 col1 col2                col3
1    a    5 15/12/2021 01:04:34
2    b    6 06/10/2021 03:14:44
3    c    7 11/04/2021 07:22:48
4    d    8 28/01/1994 11:54:56
    col1      col2      col3
"factor" "integer"  "factor"
[1] "Modified dataframe"
 col1 col2                col3
1    a    5 2021-12-15 01:04:34
2    b    6 2021-10-06 03:14:44
3    c    7 2021-04-11 07:22:48
4    d    8 1994-01-28 11:54:56
$col1
[1] "factor"

$col2
[1] "integer"

$col3
[1] "POSIXlt" "POSIXt"

Publicación traducida automáticamente

Artículo escrito por yippeee25 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *