Jak odjąć godziny od czasu w r (z przykładami)
Możesz użyć dowolnej z poniższych metod, aby odjąć określoną liczbę godzin od godziny w R:
Metoda 1: Użyj podstawy R
#create new column that subtracts 4 hours from time df$subtract4 <- df$time - ( 4 * 3600 )
Metoda 2: Użyj pakietu Lubridate
library (lubridate) #create new column that subtracts 4 hours from time df$subtract4 <- df$time - hours( 4 )
Poniższe przykłady pokazują, jak używać każdej metody z następującą ramką danych:
#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
Uwaga : Aby dodać czas do daty, po prostu zamień znak odejmowania na znak dodawania w jednym z powyższych wzorów.
Przykład 1: Odejmowanie godzin od czasu przy użyciu podstawy R
Poniższy kod pokazuje, jak utworzyć nową kolumnę o nazwie subtract4 , która odejmuje cztery razy od każdej wartości w kolumnie czasu :
#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
Należy pamiętać, że wartości w nowej kolumnie odejmij4 są równe wartościom w kolumnie czasu po odjęciu czterech godzin.
Uwaga : we wzorze używamy (4*3600), ponieważ wartości czasu są przechowywane w R jako sekundy. Ponieważ godzina ma 3600 sekund, musimy pomnożyć 4 przez 3600, aby odjąć 4 godziny.
Przykład 2: Odejmij godziny od czasu, korzystając z pakietu Lubridate
Poniższy kod pokazuje, jak użyć funkcji hours() pakietu lubridate do utworzenia nowej kolumny o nazwie subtract4 , która odejmuje cztery godziny od każdej wartości w kolumnie czasu :
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
Należy pamiętać, że wartości w nowej kolumnie odejmij4 są równe wartościom w kolumnie czasu po odjęciu czterech godzin.
Należy zauważyć, że ta metoda daje takie same wyniki jak podstawowa metoda R.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:
Jak przekonwertować datę na liczbę w R
Jak wyodrębnić miesiąc z daty w R
Jak dodawać i odejmować miesiące do daty w R