2017-04-18 56 views
0

我有R中的數據幀,看起來像這樣:添加1分鐘至複製夏令小時中的R

my data frame

dput(樣品,對照= 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' 秒。我需要它是不同的,這樣我可以查詢數據庫中的小時,而不需要兩小時的總結數據。什麼是最好的方式來做這樣的事情?

+1

我建議不要改變數據,以方便您的數據庫聚合。如果你需要將它們區分開來,那麼也許你應該爲每一行添加一個唯一的'id',而不是修改數據。 – r2evans

+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