如何在 r 中从时间中减去小时(附示例)
您可以使用以下任意方法从 R 中的一小时中减去一定的小时数:
方法一:使用Base 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:使用 Base 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 包从时间中减去小时数
以下代码演示如何使用lubridate包的hours()函数创建一个名为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 中执行其他常见任务: