Ich habe drei Felder in Dataset-Datei.Finden Min Werte in Feld 2 durch das Durchschleifen bestimmter Datensätze mit AWK
Feld 1 als ID
Feld wird verwendet, um die 2 min 3 ist
Feld boolean entweder 0 oder 1
I 2 min den Wert im Feld zu finden, muss zu vergleichen, sondern mit Bezug auf Feld 1. das ist, betrachten Sie unter Datensatz.
-Datensatz
1 0.432 0
1 0.12 1
1 0.298 0
2 0.056 0
2 0.06 1
3 0.982 0
I die Werte im Feld 2 für die ersten 3 Datensätze vergleichen müssen und prüfen, ob Feld 3 Wert = 1 für den Minimalwert in Feld so 2. Wenn hat, ++ Zählung.
Dann finden min wieder in Feld 2, aber für Datensätze mit Feld 1 = 2. Das heißt, nur Rekord 4 und 5.Und so weiter ...
Was wäre der beste Weg, um mit ihm zu gehen über ? Die Datei enthält ca. 2.000.000 Datensätze.
Ist es möglich, Feld 2 zu sortieren und dann einen Datensatz für jeden anderen Wert von Feld1 zu nehmen?
Können Sie den Code '! A [$ 1] ++' erklären? Ich bekomme diesen Teil nicht. –
Bitte erklären Sie auch sort-k1 2n-k3r. Ich googelte und es scheint -k1 ist das Feld, das wir zum Sortieren verwenden, -k3r ist das Feld, das wir in umgekehrter Reihenfolge sortieren. Aber könnten Sie es erklären? zu viele Dinge geschehen gleichzeitig. –
Der beste Weg, dies zu lernen, besteht darin, verschiedene Flags in einfachen Dateien zu testen. – karakfa