Für den Durchschnitt, den Median und die Standardabweichung können Sie verwenden awk
. Dies ist in der Regel schneller als R
Lösungen. Zum Beispiel wird der Durchschnitt wie folgt gedruckt:
awk '{a+=$1} END{print a/NR}' myfile
( NR
ist eine awk
Variable für die Anzahl der Datensätze, $1
bedeutet das erste (durch Leerzeichen getrennte) Argument der Zeile ( $0
wäre die gesamte Zeile, was auch hier funktionieren würde, aber im Prinzip weniger sicher wäre, obwohl es für die Berechnung wahrscheinlich nur wäre nehmen Sie das erste Argument sowieso) und END
bedeutet , dass die folgenden Befehle ein, nachdem sie die gesamte Datei verarbeitet werden , ausgeführt werden (man auch hätte initialisiert , a
um 0
in einer BEGIN{a=0}
Erklärung)).
Hier ist ein einfaches awk
Skript, das detailliertere Statistiken bereitstellt (nimmt eine CSV-Datei als Eingabe, andernfalls ändert sie sich FS
):
#!/usr/bin/awk -f
BEGIN {
FS=",";
}
{
a += $1;
b[++i] = $1;
}
END {
m = a/NR; # mean
for (i in b)
{
d += (b[i]-m)^2;
e += (b[i]-m)^3;
f += (b[i]-m)^4;
}
va = d/NR; # variance
sd = sqrt(va); # standard deviation
sk = (e/NR)/sd^3; # skewness
ku = (f/NR)/sd^4-3; # standardized kurtosis
print "N,sum,mean,variance,std,SEM,skewness,kurtosis"
print NR "," a "," m "," va "," sd "," sd/sqrt(NR) "," sk "," ku
}
Es ist einfach, diesem Skript min / max hinzuzufügen, aber es ist genauso einfach, sort
& head
/ tail
:
sort -n myfile | head -n1
sort -n myfile | tail -n1