Hilfe beim Ereigniszählen

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

Antworten
Saturi
Beiträge: 3
Registriert: Mi Mai 09, 2018 12:01 pm

Hilfe beim Ereigniszählen

Beitrag von Saturi » Mi Mai 09, 2018 12:09 pm

Hallo zusammen,

ich habe eine Problemstellung, die ich trotz intensiver Internet Recherche nicht lösen kann und wende mich deshalb an euch mit der Bitte um Hilfe:

ich habe folgende Datenstruktur:

AuftragsName / ErstellungsDatum / AbschlussDatum

ich möchte nun in einem Diagramm darstellen, wie viele Aufträge über einen Zeitraum gesehen gleichzeitig offen waren.
Vor verzweiflung habe ich schon versucht, das ganze über eine doppelte while Schleife laufen zu lassen, indem ich für die oben genannnte Liste pro Eintrag jeweils jedes Datum erstelle, in dem der Auftrag offen war, um nachher über die Gruppieren Funktion die Anzahl zu zählen, wie oft ein Datum existiert. Doppelte While Schleifen, in denen dann Reihen einer Tabelle hinzugefügt werden scheint aber die Rechenzeit zu sprengen und kommt daher für mich so nicht in Frage.

Ich hoffe ihr könnt mir einen besseren Weg (vermutlich ist es mal wieder ganz einfach) verraten, wie ich meine Problemstellung lösen kann.

vielen Dank.

lg.
Saturi

bigben
Beiträge: 676
Registriert: Mi Okt 12, 2016 9:09 am

Re: Hilfe beim Ereigniszählen

Beitrag von bigben » Mi Mai 09, 2018 12:46 pm

Die Rechenzeit zu sprengen? Wieviele Aufträge und was für Zeiträume sind das denn und wieviel Rechenzeit wäre erträglich?
Poste doch bitte mal Deinen Code und einen kleinen Ausschnitt von Deinem Datensatz.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte

Saturi
Beiträge: 3
Registriert: Mi Mai 09, 2018 12:01 pm

Re: Hilfe beim Ereigniszählen

Beitrag von Saturi » Mi Mai 09, 2018 3:13 pm

Hallo,

mir geht es hier nicht um Sekunden bei der Rechenzeit. Aber ich würde doch trotzdem gerne keine Stunden vor der Rechner verbringen, bis er fertig wird.

hier ein Beispiel. Hierbei handelt es sich um 100 Datensätze, was schon seine paar Sekunden Zeit braucht.
Ich arbeite später aber mit ca. 15000 Datensätzen. Ich bin mir sicher, dass es eine viel bessere Umsetzung gibt, als meine:

ich brauche den Vektor "AlleTage" auch nicht zwingend, mir würde auch eine Zusammenfassung reichen, in der jedes Datum nur einmal drin steht und in einer zweiten Spalte wie viele Aufträge dieses Datum einschließen

Code: Alles auswählen

library("dplyr")

start <- as.Date("2017/01/01")
ende <- as.Date("2017/12/31")
set.seed(1)

ZufallsWerte <- seq(start, ende, by = "days")[sample(100)]
MeineTabelle <- data.frame(Anfang = ZufallsWerte, Ende = ZufallsWerte + sample(100, 100))
MeineTabelle$Tage <- MeineTabelle$Ende - MeineTabelle$Anfang 
head(MeineTabelle)


AlleTage <-data.frame(c(1))
colnames(AlleTage)[1] <- "AlleTage" #Dummyeintrag, um die Spalte bennen zu können

i=1
while( i< nrow(MeineTabelle))
{
  j=0
  while(j<=MeineTabelle$Tage[i])
  {
    
    AlleTage <- add_row(AlleTage,AlleTage=toString(MeineTabelle$Anfang[i]+j))
    j=j+1
  }
  i=i+1
}

AlleTage <- data.frame(AlleTage[2:nrow(AlleTage),])  #löschen des Dummyeintrags

plot(AlleTage)
vielen Dank.

jogo
Beiträge: 933
Registriert: Fr Okt 07, 2016 8:25 am

Re: Hilfe beim Ereigniszählen

Beitrag von jogo » Mi Mai 09, 2018 4:04 pm

Hallo Saturi,

wie wär es mit:

Code: Alles auswählen

Tage <- min(MeineTabelle$Anfang):max(MeineTabelle$Ende)
events <- sapply(Tage, function(x) sum(MeineTabelle$Anfang<=x & x<=MeineTabelle$Ende))
plot(events ~ Tage)
(das Datumsformat muss man noch wieder gerade biegen)

Gruß, Jörg

Saturi
Beiträge: 3
Registriert: Mi Mai 09, 2018 12:01 pm

Re: Hilfe beim Ereigniszählen

Beitrag von Saturi » Mi Mai 09, 2018 7:10 pm

Danke!

genau danach hab ich gesucht... Die Apply Familie war das was ich brauche.
vielen Dank!

ich habe

Code: Alles auswählen

Tage <- min(MeineTabelle$Anfang):max(MeineTabelle$Ende)
noch in

Code: Alles auswählen

Tage <- seq(min(MeineTabelle$Anfang),max(MeineTabelle$Ende),by=1)
geändert und jetzt passts auch mit dem Datum.

Danke euch beiden!
lg.
Saturi

jogo
Beiträge: 933
Registriert: Fr Okt 07, 2016 8:25 am

Re: Hilfe beim Ereigniszählen

Beitrag von jogo » Mi Mai 09, 2018 7:22 pm

Wahrscheinlich kannst Du by=1 weglassen.

Gruß, Jörg

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast