Beispiel an diesem Punkt in meinem Code:verschachtelte ifelse Anweisung beschleunigen - R
time_elapsed network_name daypart day
1: 4705 Laff TV 2016-09-09 03:11:35 Friday
2: 1800 CNN 2016-09-10 08:00:00 Saturday
3: 23 INSP 2016-09-02 18:00:00 Friday
4: 148 NBC 2016-09-02 16:01:26 Friday
5: 957 History Channel 2016-09-07 14:44:03 Wednesday
6: 1138 Nickelodeon/Nick-at-Nite 2016-09-09 16:00:00 Friday
7: 120 Starz Edge 2016-09-07 15:28:59 Wednesday
8: 268 Starz Encore Westerns 2016-09-07 17:13:05 Wednesday
9: 6 CBS 2016-09-10 04:00:00 Saturday
10: 69 Independent 2016-09-07 12:48:11 Wednesday
11: 4151 NBC 2016-09-09 04:32:37 Friday
12: 570 PBS: Public Broadcasting Service 2016-09-07 16:17:58 Wednesday
13: 1421 NBCSN 2016-09-03 15:22:23 Saturday
14: 466 Estrella TV (Broadcast) 2016-09-04 19:00:00 Sunday
(im Allgemeinen mehr als 200 Millionen Zeilen)
Ich schrieb die folgende verschachtelte ifelse Aussage vor ein paar Monaten, als ich Ich liefere mein gesamtes Skript über nur ein paar Millionen Zeilen, aber jetzt, wo ich es in größerem Umfang benutze, würde ich wirklich gerne einen Weg finden, es ein wenig schneller zu machen.
Ich habe versucht, eine data.table Lösung zu verwenden, aber war nur sehr wenig schneller und verwandelte meine data.table in eine Liste. Für das Leben von mir konnte ich nicht sehen warum. Das hinzugefügt genug Zeit, um es rückgängig zu machen, war nicht die Ersparnisse wert.
Alle Vorschläge würden sehr geschätzt werden. Was ich habe funktioniert und wenn ich dabei bleiben muss, wird es in Ordnung sein. Es dauert derzeit etwa 3,5 Stunden, um den vollständigen Code zu durchlaufen. Der größte Teil ist eine SQL-Abfrage und die Dateierstellung der Ergebnisse, aber es wäre schön, wenn ich so viel Zeit wie möglich abräumen könnte!
(As Nebenbei bemerkt - es verwendet fast 8 Stunden dauern, bis ich Tonnen Teile mit data.table Syntax ersetzt ich jetzt eine offizielle Fan bin.!)
Sie könnten parLapply verwenden, um mehrere Zeilen gleichzeitig auszuführen – Rilcon42
Siehe '? Cut'. Es scheint, dass Sie etwas wie 'cut (targets_random $ daypart $ hour, c (-Inf, 3, 6, 10, 17, 21, Inf), include.lowest = TRUE, right = FALSE) 'aber die Änderung der" Labels "Argument mit' c ("LP: Late Prime", "O: Overnight", etc ...) 'und danach mit' "W: Weekend" 'wo auch immer ersetzen (targets_random $ daypart $ wday + 1)% in% c (1, 7) ' –