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