在r中更改数据集每列中的时间
我想按时间合并两个数据集。不幸的是,其中一个数据集来自不同的时区,因此时间列中存在两个小时的差异。有人知道如何将数据集中每列的时间增加两个小时吗 我非常感谢每一个建议:) 时间格式如下所示:在r中更改数据集每列中的时间,r,dataframe,R,Dataframe,我想按时间合并两个数据集。不幸的是,其中一个数据集来自不同的时区,因此时间列中存在两个小时的差异。有人知道如何将数据集中每列的时间增加两个小时吗 我非常感谢每一个建议:) 时间格式如下所示: 07:31:21这里有一个主要基于regex的解决方案(我相信也有基于包的解决方案可以“读取”时间数据!)。假设您有如下值: x <- c("07:31:21", "12:03:55", "21:07:01") 这就是一系列操作: 使用反
07:31:21这里有一个主要基于regex的解决方案(我相信也有基于包的解决方案可以“读取”时间数据!)。假设您有如下值:
x <- c("07:31:21", "12:03:55", "21:07:01")
这就是一系列操作:
- 使用反向参考
\\1
- 使用
as.numeric
- 添加
2
- 如有必要,使用
stru pad
- 提取不是小时数的任何内容
- 将两个单独的子字符串重新粘贴在一起usng
李>paste0
hms
和lubridate
功能with_tz
,该功能可更改时区(参考时区是您所在的地区之一,me:LC_time=French_Switzerland.1252
)
as_-hms
转换为hms时间,您可以使用with_-tz
更改时区(但lubridate将转换为日期,所以是1970年和时间),然后将其转换回hms
格式以仅包含时间
如果您只想添加固定金额,hms
以秒为单位,那么您可以添加2*3600秒以添加2小时:
as_hms(as_hms("07:31:21") + 2*3600)
09:31:21
当然,它是矢量化的:
x <- c("07:31:21", "12:03:55", "21:07:01")
x %>%
as_hms() %>%
with_tz("America/New_York") %>%
as_hms()
02:31:21
07:03:55
16:07:01
x%
as_hms()%>%
与_-tz(“美国/纽约”)%%>%
as_hms()
02:31:21
07:03:55
16:07:01
您没有提供示例数据或代码,因此我无法生成示例,但请检查包data.table的非等联接。
as_hms(as_hms("07:31:21") + 2*3600)
09:31:21
x <- c("07:31:21", "12:03:55", "21:07:01")
x %>%
as_hms() %>%
with_tz("America/New_York") %>%
as_hms()
02:31:21
07:03:55
16:07:01