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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *