Как вычесть часы из времени в r (с примерами)


Вы можете использовать любой из следующих методов, чтобы вычесть определенное количество часов из часа в R:

Метод 1: используйте базу R

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

Способ 2: используйте пакет Lubridate

 library (lubridate)

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

В следующих примерах показано, как использовать каждый метод со следующим фреймом данных:

 #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

Примечание . Чтобы добавить время к дате, просто замените знак вычитания знаком сложения в одной из приведенных выше формул.

Пример 1. Вычитание часов из времени с использованием базы R

Следующий код показывает, как создать новый столбец с именем subtract4 , который вычитает четыре раза из каждого значения в столбце времени :

 #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

Обратите внимание, что значения в новом столбце subtract4 равны значениям в столбце времени с вычтенными четырьмя часами.

Примечание . В формуле мы используем (4*3600), поскольку значения времени хранятся в секундах в R. Поскольку в часе 3600 секунд, нам нужно умножить 4 на 3600, чтобы вычесть 4 часа.

Пример 2. Вычтите часы из времени с помощью пакета Lubridate.

Следующий код показывает, как использовать функциюhours() пакета lubridate для создания нового столбца с именем subtract4 , который вычитает четыре часа из каждого значения в столбце времени :

 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

Обратите внимание, что значения в новом столбце subtract4 равны значениям в столбце времени с вычтенными четырьмя часами.

Обратите внимание, что этот метод дает те же результаты, что и базовый метод R.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:

Как преобразовать дату в числовое значение в R
Как извлечь месяц из даты в R
Как добавить и вычесть месяцы к дате в R

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *