Ich verwende R, um einige Server-Logs zu analysieren, die Listen erzeugen, die wie folgt aussehen:
%Vor%Was ich von ihnen produzieren möchte, ist eine Matrix, die so aussieht:
%Vor%Sie kommen von der Abfrage eines Datenbankfeldes vom Typ varchar, also glaube ich nicht, dass ich irgendwelche Dateilesetricks verwenden kann.
Ich habe eine Menge davon, Millionen von Reihen gleichzeitig.
Was ich gemacht habe, ist folgendes, es ist ziemlich langsam:
%Vor%Gibt es einen effizienteren Weg? Ein One-Liner-Regex?
Sie könnten versuchen, dies mit dem stringi
-Paket
Benchmarks
%Vor%
1) Ich habe nicht überprüft, wie schnell das ist, aber der Code ist sehr kurz:
%Vor% wo myLog
ist wie in der Frage.
2) Hier ist eine Basislösung:
%Vor% Das scheint ziemlich schnell (~ 2 Sekunden bei einer Million Fällen), aber nicht so schnell wie die stringi
Lösung von David:
Benchmarking bei 30K-Fällen (Alle außer den ersten beiden verursachten tatsächlich, dass meine R-Sitzung beim Testen von 1 Million Fällen nicht reagierte):
%Vor%Schnellste zwei:
%Vor%Middling:
%Vor%Langsamer:
%Vor%Tags und Links r