Como subtrair horas do tempo em r (com exemplos)


Você pode usar qualquer um dos seguintes métodos para subtrair um certo número de horas de uma hora em R:

Método 1: Use Base R

 #create new column that subtracts 4 hours from time
df$subtract4 <- df$time - ( 4 * 3600 )

Método 2: Use o pacote Lubridate

 library (lubridate)

#create new column that subtracts 4 hours from time
df$subtract4 <- df$time - hours( 4 )

Os exemplos a seguir mostram como usar cada método com o seguinte quadro de dados:

 #create data frame
df <- data. frame (time=as. POSIXct (c('2022-01-03 08:04:15', '2022-01-05 14:04:15',
                                   '2022-01-05 20:03:53', '2022-01-06 03:29:13',
                                   '2022-01-06 06:15:00', '2022-01-07 10:48:11'),
                                   format='%Y-%m-%d %H:%M:%OS'),
                 sales=c(130, 98, 240, 244, 174, 193))

#view data frame
df

                 time sales
1 2022-01-03 08:04:15 130
2 2022-01-05 14:04:15 98
3 2022-01-05 20:03:53 240
4 2022-01-06 03:29:13 244
5 2022-01-06 06:15:00 174
6 2022-01-07 10:48:11 193

Nota : Para adicionar horas a uma data, basta substituir o sinal de subtração por um sinal de adição em uma das fórmulas acima.

Exemplo 1: Subtraindo horas do tempo usando base R

O código a seguir mostra como criar uma nova coluna chamada subtract4 que subtrai quatro vezes de cada valor na coluna de tempo :

 #create new column that subtracts 4 hours from time
df$subtract4 <- df$time - ( 4 * 3600 )

#view updated data frame
df

                 time sales subtract4
1 2022-01-03 08:04:15 130 2022-01-03 04:04:15
2 2022-01-05 14:04:15 98 2022-01-05 10:04:15
3 2022-01-05 20:03:53 240 2022-01-05 16:03:53
4 2022-01-06 03:29:13 244 2022-01-05 23:29:13
5 2022-01-06 06:15:00 174 2022-01-06 02:15:00
6 2022-01-07 10:48:11 193 2022-01-07 06:48:11

Observe que os valores na nova coluna subtract4 são iguais aos valores na coluna de tempo com quatro horas subtraídas.

Nota : Usamos (4*3600) na fórmula porque os valores de tempo são armazenados como segundos em R. Como há 3600 segundos em uma hora, precisamos multiplicar 4 por 3600 para subtrair 4 horas.

Exemplo 2: Subtraia horas do tempo usando o pacote Lubridate

O código a seguir mostra como usar a função hours() do pacote lubridate para criar uma nova coluna chamada subtract4 que subtrai quatro horas de cada valor na coluna de tempo :

 library (lubridate)

#create new column that subtracts 4 hours from time
df$subtract4 <- df$time - hours( 4 )

#view updated data frame
df

                 time sales subtract4
1 2022-01-03 08:04:15 130 2022-01-03 04:04:15
2 2022-01-05 14:04:15 98 2022-01-05 10:04:15
3 2022-01-05 20:03:53 240 2022-01-05 16:03:53
4 2022-01-06 03:29:13 244 2022-01-05 23:29:13
5 2022-01-06 06:15:00 174 2022-01-06 02:15:00
6 2022-01-07 10:48:11 193 2022-01-07 06:48:11

Observe que os valores na nova coluna subtract4 são iguais aos valores na coluna de tempo com quatro horas subtraídas.

Observe que este método produz os mesmos resultados que o método R base.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:

Como converter uma data em numérico em R
Como extrair mês da data em R
Como adicionar e subtrair meses a uma data em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *