如何在 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 中执行其他常见任务:

如何在R中将日期转换为数字
如何从R中的日期中提取月份
如何在 R 中为日期添加和减去月份

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注