Как вычесть часы из времени в 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