我在R中有一个数据框,如下所示:
dput(sample,control = NULL):
list(date_time = c(1446339600, 1446343200, 1446343200, 1446346800,
1446350400), id = c(1, 1, 1, 1, 1), test = c("0.9", "0.64", "0.7",
"0.72", "0.88"))
实际数据框有1,217,048行,有许多重复日期,但它按date_time排序,然后按类似于我提供的示例的id排序。我试图让第二次夏令时出现不同的做法,比如添加1分钟,这样每隔一段时间你看到'2015-11-01 02:00:00'就会变成'2015-11-01 2时01分00' 秒。我需要它是不同的,以便我可以查询数据库中的小时,而不会将两小时的数据相加。做这样的事情最好的方法是什么?
答案 0 :(得分:1)
m = data.frame(date_time = c(1446339600, 1446343200, 1446343200, 1446346800,
1446350400), id = c(1, 1, 1, 1, 1), test = c("0.9", "0.64", "0.7",
"0.72", "0.88"))
m$date_time = as.POSIXct((m$date_time + ave(m$date_time, m$date_time, FUN = seq_along) - 1) * 60, origin = "1970-01-01")
m
# date_time id test
#1 4719-12-18 06:00:00 1 0.9
#2 4719-12-20 18:00:00 1 0.64
#3 4719-12-20 18:01:00 1 0.7
#4 4719-12-23 06:00:00 1 0.72
#5 4719-12-25 18:00:00 1 0.88