2017-04-18 2 views
0

ich einen Datenrahmen in R haben, die wie folgt aussieht:In 1 Minute Sommer Stunde in R zu duplizieren

my data frame

dput (Probe, Kontrolle = 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")) 

Der eigentliche Datenrahmen hat 1.217.048 Zeilen mit vielen sich wiederholenden Daten, aber er ist nach date_time und dann nach ID sortiert, die dem von mir bereitgestellten Beispiel entsprechen. Ich versuche, das zweite Auftreten der Sommerzeit anders zu machen, indem ich so etwas wie 1 Minute addiere, so dass jedes zweite Mal, dass du '2015-11-01 02:00:00' siehst, zu etwas wie '2015-11-01 wechseln wird 02:01:00 '. Ich brauche es anders, damit ich die Stunde in einer Datenbank abfragen kann, ohne dass die Daten für die zwei Stunden summiert werden. Was wäre der beste Weg, um so etwas zu tun?

+1

Ich empfehle, die Daten zu ändern, um Ihre Datenbankaggregation bequem zu machen. Wenn Sie sie benötigen, um unterscheidbar zu sein, dann sollten Sie vielleicht eine eindeutige ID für jede Reihe hinzufügen, anstatt Daten zu ändern. – r2evans

+0

Ich werde meine Tabellenstruktur in meiner Datenbank ändern, bevor ich dazu komme. Ich hatte nicht darüber nachgedacht. –

Antwort

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 
Verwandte Themen