Ich habe die Ankunftszeit und Abfahrtszeit und Datum von verschiedenen Kunden zu einem System. Ich möchte die Anzahl der Personen im System alle 30 Minuten zählen. Wie kann ich das R machen? Hier sind meine DatenZählen der Anzahl der Personen im System in R
Antwort
Wenn ich verstehe Ihre Frage, hier ist ein Beispiel mit gefälschten Daten:
library(tidyverse)
library(lubridate)
# Fake data
set.seed(2)
dat = data.frame(id=1:1000, type=rep(c("A","B"), 500),
arrival=as.POSIXct("2013-08-21 05:00:00") + sample(-10000:10000, 1000, replace=TRUE))
dat$departure = dat$arrival + sample(100:5000, 1000, replace=TRUE)
# Times when we want to check how many people are still present
times = seq(round_date(min(dat$arrival), "hour"), ceiling_date(max(dat$departure), "hour"), "30 min")
# Count number of people present at each time
map_df(times, function(x) {
dat %>%
group_by(type) %>%
summarise(Time = x,
Count=sum(arrival < x & departure > x)) %>%
spread(type, Count) %>%
mutate(Total = A + B)
})
Time A B Total <dttm> <int> <int> <int> 1 2013-08-21 02:00:00 0 0 0 2 2013-08-21 02:30:00 26 31 57 3 2013-08-21 03:00:00 54 53 107 4 2013-08-21 03:30:00 75 81 156 5 2013-08-21 04:00:00 58 63 121 6 2013-08-21 04:30:00 66 58 124 7 2013-08-21 05:00:00 55 60 115 8 2013-08-21 05:30:00 52 63 115 9 2013-08-21 06:00:00 57 62 119 10 2013-08-21 06:30:00 62 51 113 11 2013-08-21 07:00:00 60 67 127 12 2013-08-21 07:30:00 72 54 126 13 2013-08-21 08:00:00 66 46 112 14 2013-08-21 08:30:00 19 12 31 15 2013-08-21 09:00:00 1 2 3 16 2013-08-21 09:30:00 0 0 0 17 2013-08-21 10:00:00 0 0 0
Ich bin mir nicht sicher, was Sie durch Zählen der Anzahl von Menschen „im System“ bedeuten, aber ich nehme an, Sie „die Zahl der Menschen bedeuten, die angekommen sind, aber Noch nicht abgereist". Um dies zu tun, können Sie eine einfache logische Bedingung auf die relevanten Spalten Ihres Datenrahmens anwenden, z.
logicVec <- df$arrival_time <= dateTimeObj & dateTimeObj < df$departure_time
LogicVec wird offensichtlich ein logischer Vektor von TRUEs und FALSEs sein. Weil TRUE == 1 und FALSE == 0, können Sie dann einfach die sum(logicVec)
Funktion verwenden, um die Gesamtzahl der Personen/Kunden/Zeilen zu ermitteln, die die oben beschriebene Bedingung erfüllen.
Sie können diese Codezeile dann einfach für jedes dateTimeObj (der gewünschten Klasse, z. B. POSIXct) wiederholen. In Ihrem Fall wäre es jedes dateTimeObj wo jeder 30 Minuten auseinander liegen.
Ich hoffe, das hilft.
- 1. Anzahl der Personen in meiner Abfrage zählen
- 2. Anzahl der Vorkommen zählen [R]
- 3. Zählen und Gruppieren der Anzahl der Vorkommen in R
- 4. Zählen der Anzahl der spezifischen Strings in einem R-Datenrahmen
- 5. Zählen der Anzahl der Vorkommen eines Wertes in R
- 6. Zählen der Anzahl der Erscheinungen eines bestimmten Wertes in r
- 7. Die Anzahl der Elemente im Array zählen
- 8. Ember.js Anzahl der Datensätze im Speicher zählen
- 9. Anzahl der Sätze im Textfeld zählen
- 10. Wie die Anzahl der Personen in der Einreichung zu zählen SQL Server
- 11. Anzahl der Vorkommen zählen
- 12. Anzahl der Zeichenfolgenvorkommen zählen
- 13. Anzahl der Verzeichnisse zählen
- 14. Anzahl der Bestellungen zählen
- 15. Anzahl der Updates zählen
- 16. Anzahl der Textareas zählen
- 17. Anzahl der Elemente im Abfrage-Set ohne Anzahl zählen()
- 18. Anzahl der gleichen Werte zählen und sie in R
- 19. Zählen der Anzahl der Zeichen in TextBox
- 20. Zählen der Anzahl der Vorkommen in Python
- 21. Anzahl der Vektorwerte im Bereich mit R
- 22. Anzahl der Ereignisse in falscher Reihenfolge zählen
- 23. Javascript: Zählen der Anzahl der ungeraden Zahlen
- 24. Ermitteln und zählen Sie die Anzahl der Personen in einem Bild mit Matlab
- 25. Anzahl der Klammern in einer Datei zählen
- 26. Anzahl der eindeutigen Spaltenkombinationen in R
- 27. Pandas: Anzahl der Großbuchstaben zählen
- 28. Python - Zählen der Anzahl der Zeichen in Dateien
- 29. Zählen der Anzahl der Beobachtungen, die bestimmte Kriterien im Laufe der Zeit erfüllen
- 30. Anzahl der Felder in einem Dokument zählen
Es ist nicht hilfreich Bilder von Daten zu teilen. Es ist einfacher, Ihnen zu helfen, wenn Sie ein richtiges [reproduzierbares Beispiel] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) mit der Beispieleingabe und der gewünschten Ausgabe bereitstellen Wir können Tests durchführen und mögliche Lösungen testen. – MrFlick
Bitte geben Sie ein [reproduzierbares Beispiel] an (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). – Masoud