Für den Durchschnitt, den Median und die Standardabweichung können Sie verwenden awk. Dies ist in der Regel schneller als RLösungen. Zum Beispiel wird der Durchschnitt wie folgt gedruckt:
awk '{a+=$1} END{print a/NR}' myfile
( NRist eine awkVariable für die Anzahl der Datensätze, $1bedeutet das erste (durch Leerzeichen getrennte) Argument der Zeile ( $0wä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 ENDbedeutet , dass die folgenden Befehle ein, nachdem sie die gesamte Datei verarbeitet werden , ausgeführt werden (man auch hätte initialisiert , aum 0in einer BEGIN{a=0}Erklärung)).
Hier ist ein einfaches awkSkript, 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