Ich frage mich, ob jemand eine Idee hat, wie man Kombinationen wie die folgenden besser zählen kann, als ich es mir ausgedacht habe.
> library(lubridate)
> df <- data.frame(x=sample(now()+hours(1:3), 100, T), y=sample(1:4, 100, T))
> with(df, as.data.frame(table(x, y)))
x y Freq
1 2012-06-15 00:10:18 1 5
2 2012-06-15 01:10:18 1 9
3 2012-06-15 02:10:18 1 8
4 2012-06-15 00:10:18 2 9
5 2012-06-15 01:10:18 2 10
6 2012-06-15 02:10:18 2 12
7 2012-06-15 00:10:18 3 7
8 2012-06-15 01:10:18 3 9
9 2012-06-15 02:10:18 3 6
10 2012-06-15 00:10:18 4 5
11 2012-06-15 01:10:18 4 14
12 2012-06-15 02:10:18 4 6
Ich mag dieses Format, aber leider haben wir bei der x
y y
über table()
wurden sie in Faktoren umgewandelt. In der endgültigen Ausgabe können sie ganz gut als ihr ursprünglicher Typ existieren, aber der Weg dorthin scheint problematisch zu sein. Derzeit korrigiere ich alle Typen im Nachhinein manuell, was wirklich chaotisch ist, weil ich die Zeitzone neu einstellen und die Prozentcodes für das Standard-Datumsformat nachschlagen muss usw. usw.
Es scheint, dass eine effiziente Lösung ein Hashing der Objekte oder eine andere Zuordnung von Ganzzahlen zu den eindeutigen Werten von x
y y
Wir können also verwenden tabulate()
und dann die Zuordnung zurück.
Ideen?