我有一个日期和时间列,遵循24小时格式。现在我希望它将它移动6个小时,这样当天早上6点变为00:00,第二天早上6点完成。在excel中,如果我们从日期列中减去0.25,它会直接将日期移动6小时。但类似的功能似乎在R中不起作用。如何在R中实现这一点?
答案 0 :(得分:0)
您应该提供有关您的问题的更多信息,例如您正在使用的数据。
要使用R复制它,您可以使用lubridate包:
library(lubridate)
new_time <- time - hms("06:00:00")
希望这有帮助
答案 1 :(得分:0)
使用基数R的解决方案。默认情况下,算术运算会添加秒数,因此:
now <- Sys.time() #gets the current time
now
"2016-04-22 09:52:21 CEST"
now + 6*3600
"2016-04-22 15:52:21 CEST"
根据您的数据,您可以尝试strptime
:
df <- read.table(text="
DateTime
2/10/2016 19:18
2/10/2016 19:15
2/10/2016 19:12
2/10/2016 19:09
2/10/2016 19:06
2/10/2016 19:03", sep=";", h=T)
df
DateTime
1 2/10/2016 19:18
2 2/10/2016 19:15
3 2/10/2016 19:12
4 2/10/2016 19:09
5 2/10/2016 19:06
6 2/10/2016 19:03
df$NewTime <- strptime(as.character(df$DateTime), format="%d/%m/%Y %H:%M") 6*3600
df
DateTime NewTime
1 2/10/2016 19:18 2016-10-03 01:18:00
2 2/10/2016 19:15 2016-10-03 01:15:00
3 2/10/2016 19:12 2016-10-03 01:12:00
4 2/10/2016 19:09 2016-10-03 01:09:00
5 2/10/2016 19:06 2016-10-03 01:06:00
6 2/10/2016 19:03 2016-10-03 01:03:00
您可以使用as.character
中的stringsAsFactors = FALSE
删除read.table
步骤。
它能解决你的问题吗?