Ich finde, awk
kann verwendet werden, um den Mittelwert der Spalte wie in here zu finden. Nehmen wir an, ich möchte den Durchschnitt der zweiten Spalte berechnen, aber nur Elemente zwischen bestimmten Zeilen (z. B. von Zeile 2 bis 6). Wie macht man das?Finden Mittelwert von Spaltendaten in bestimmten Intervall
Antwort
Ich fand die Lösung. awk
hat den Parameter FNR
, der die Anzahl der Datensätze angibt, die normalerweise die Zeilennummer angeben. Mit diesem auf karakfa des solution:
awk 'FNR>=2 && FNR<=6 {sum+=$2; count++}
END {print (count?sum/count:"N/A")}' file
Versuchen:
$ awk -v s=2 -v e=6 '{if(($2>=s)&&($2<=e)){sum+=$2;n++}}END{print (n!=0)?sum/n:0}' input.txt
Erläuterung:
#!/bin/awk
BEGIN {
start = 2
end = 6
}
{
if(($2 >= start) && ($2 <= end))
{
sum = sum + $2
n = n + 1
}
}
END {
print (n!= 0) ? sum/n : 0
}
#eof#
Hoffe, es hilft!
Um awk zu lernen, lese das Buch Effective Awk Programming, 4. Auflage, von Arnold Robbins. Awk ist nicht C. –
'NR' wird nicht die Anzahl der aufgezeichneten Datensätze sein! Sie müssen die tatsächliche Anzahl für die Mittelwertberechnung verwenden. – karakfa
@EdMorton: brainfuck-artige idiomatische, arght! – Lacobus
$ awk '$2>=2 && $2<=6 {sum+=$2; count++}
END {print (count?sum/count:"N/A")}' file
Dies funktioniert nicht für Daten im wissenschaftlichen Format. Zum Beispiel: + 5.68902179E + 00 –
Alle Änderungen, die das wissenschaftliche Format enthalten? –
Ich erkannte, dass meine Frage nicht klar genug war. Ich habe den Schnitt gemacht. Was ich meinte, ist der Zugriff auf Spalten zwischen bestimmten Zeilenintervallen und nicht auf Spalten zwischen bestimmten Werten. –
- 1. (SQL) SELECT den Mittelwert mit Intervall
- 2. Schnittpunkt nach bestimmten Intervall
- 3. Mittelwert aus Textdatei finden
- 4. Subtrahieren Mittelwert von bestimmten Zeilen mit summarise_each
- 5. R - Mittelwert von bestimmten Abschnitten eines Vektors
- 6. [Maximale Energie in einem bestimmten Intervall]
- 7. Ausführen einer Aktivität in einem bestimmten Intervall
- 8. Mittelwert aller umliegenden Zellen finden
- 9. Pandas finden max stabiles Intervall
- 10. Den Mittelwert der Zeitstempeldaten in Matlab finden
- 11. Artikel zu Arraylist in bestimmten Intervall hinzufügen
- 12. den Maximalwert zwischen einem bestimmten Intervall Finding
- 13. Aggregation von Werten in einem bestimmten Bereich (Intervall) mit SPARQL?
- 14. Finden Sie alle Einträge in einem bestimmten Intervall voneinander in Pandas
- 15. Numpy Mittelwert von Nullwerten
- 16. Ändern von Spaltendaten in SQL Server
- 17. Update reagieren Zustand nach einem bestimmten Intervall
- 18. Mittelwert von vorherigen gruppierten Daten mit dplyr finden
- 19. Auswahl der Datenbankwerte von bestimmten Intervall Daten, nicht richtig
- 20. bearbeiten Spaltendaten in SQL
- 21. Finden von Konturen in einem bestimmten Bereich
- 22. Wie verdeckte Spaltendaten von jTable in QuickInfo
- 23. Mittelwert einer Spalte in einer Matrix mit mehreren Bedingungen finden
- 24. harmonischer Mittelwert in Python
- 25. So finden Sie den Mittelwert einer Spalte in R
- 26. gewichteten Mittelwert von Reihe
- 27. Die Anzahl der bestimmten Wochentage (Wochenende) aus Intervall in PostgreSQL
- 28. Ich muss mehrere Bilder nacheinander in einem bestimmten Intervall laden
- 29. Diagramm der Ergebnisse in Intervall in R
- 30. Konvertieren von Spaltendaten dezimal in IP-Adresse in R
Read [fragen] und dann [Bearbeiten] Ihre Frage, die fehlenden Informationen zu liefern. –
@EdMorton: Ich ging durch den Abschnitt "Wie man fragt". Aber ich sehe nicht genau, was die fehlenden Informationen sind. Irgendwelche spezifischen Zeiger? –