2016-09-10 13 views
0

Ich möchte einen Datenrahmen von 15-Minuten-Intervallen über 24 Stunden erstellen, beginnend mit einem bestimmten Intervall an mehreren Daten. Ich benutze eine Schleife dafür, aber sofort die tatsächlichen Intervalle speichert die Anzahl der Sekunden, die in meinem Fall nicht nützlich ist. Gibt es eine Möglichkeit, dies zu vermeiden? Ich brauche die Intervalle, um zu sehen, wie oft zeitgesteuerte Ereignisse in diesen Intervallen passieren. Ich fand eine ähnliche Frage, aber die Antwort konzentrierte sich auf die Verwendung von "lapply" anstelle von "apply", was hier nicht anwendbar ist.Speichern von Intervallen in einem Datenrahmen (R)

So, hier ist ein einfaches Beispiel:

begin<-as.POSIXct(rbind("2016-03-31 09:00:00","2016-04-12 09:00:00")) 
end<-as.POSIXct(rbind("2016-03-31 09:15:00","2016-04-12 09:15:00")) 
int<-as.interval(begin,end) 
aufl<-duration(15, "mins") 
Intervall=data.frame() 
for (j in 1:length(int)){for (i in 1:96){Intervall[j,i]<-int_shift(int[j],aufl*(i-1))}} 
Intervall 

Antwort

0

ich eine Antwort erstellt, ich hoffe, das ist, was Sie suchen. Wenn nicht, bitte Kommentar:

library(lubridate) 

begin <- as.POSIXct(rbind("2016-03-31 09:00:00","2016-04-12 09:00:00")) 

# copy begin time for loop 
begin_new <- begin 

# create durateion object 
aufl <- duration(15, "mins") 

# count times for loop 
times <- 24*60/15 

# create dataframe with begin time 
Intervall <- data.frame(begin,stringsAsFactors = FALSE) 

for (i in 1:times){ 

    cat("test",i,"\n") 

    # save old time for interval calculation 
    begin_start <- begin_new 
    # add 15 Minutes to original time 
    begin_new <- begin_new + aufl 

    cat(begin_new,"\n") 

    # create an interval object between 
    new_dur <- interval(begin_start,begin_new) 

    # bind to original dataframe 
    Intervall <- cbind(Intervall,new_dur) 

} 

# Add column names 
vec_names <- paste0("v",c(1:(times+1))) 
colnames(Intervall) <- vec_names 
+0

Vielen Dank! Ihre Antwort ist viel eleganter als mein Versuch. Nur um zu verstehen: Was macht "Katze"? – Valentin

+0

cat druckt nur die Variable 'begin_new' in die Konsole und' \ n' erstellt eine neue Zeile. Dies ist nur zum Debuggen. Wenn Sie mit der Antwort zufrieden sind, markieren Sie sie bitte als gelöst. – PhiSeu

Verwandte Themen