Ich versuche einige Zeilen von einer Datentabelle auszuschließen, basierend auf, sagen wir, Tagen und Monaten - ausgenommen beispielsweise Sommerferien, die immer zum Beispiel am 15. Juni beginnen und am 15. des nächsten Monats enden. Ich kann diese Tage basierend auf dem Datum extrahieren, aber da die .Date-Funktion schrecklich langsam ist, habe ich separate Integer-Spalten für Monat und Tag, und ich möchte nur mit ihnen arbeiten.
Es ist einfach, die angegebenen Einträge mit
auszuwählen %Vor% Gibt es einen Weg, wie man die " data.tables
" (die ursprünglichen und die von mir ausgewählten) "unterscheiden" kann? (Warum nicht Teilmenge? Vielleicht fehlt mir etwas Einfaches, aber ich möchte nicht Tage wie 10/6, 31/7 ausschließen.)
Ich bin mir bewusst, wie man das mit Join machen kann, aber nur Tag für Tag
%Vor%Kann jemand helfen, es auf eine allgemeinere Weise zu lösen?
Gute Frage. Ich habe den Fragetitel entsprechend der Frage bearbeitet.
Ein einfacher Ansatz, der as.Date
vermeidet, der gut liest:
Das ist wahrscheinlich in vielen Fällen schnell genug. Wenn Sie viele verschiedene Bereiche haben, sollten Sie einen Gang höher schalten:
%Vor% Das ist ein bisschen lang und fehleranfällig, weil es DIY ist. Eine Idee ist also, dass eine Spalte list
in einer Tabelle i
eine Bereichsabfrage darstellt ( FR # 203 , wie eine binäre Suche %between%
). Dann ein not-join (auch noch nicht implementiert, FR # 1384 ) könnte mit der Listenspaltenbereich-Abfrage kombiniert werden, um genau das zu tun, was Sie gefragt haben:
Das würde sich auf verschiedene Weise auf mehrere verschiedene Bereiche oder den gleichen Bereich für viele verschiedene IDs erstrecken; d. h. mehr Zeilen, die zu i
hinzugefügt wurden.
Tags und Links r data.table