Comment calculer la moyenne d’une colonne

Quelqu’un sait comment puis-je calculer la moyenne d’une de ces colonnes (sous Linux)?

sda 2.91 20.44 6.13 2.95 217.53 186.67 44.55 0.84 92.97 sda 0.00 0.00 2.00 0.00 80.00 0.00 40.00 0.22 110.00 sda 0.00 0.00 2.00 0.00 144.00 0.00 72.00 0.71 100.00 sda 0.00 64.00 0.00 1.00 0.00 8.00 8.00 2.63 10.00 sda 0.00 1.84 0.31 1.38 22.09 104.29 74.91 3.39 2291.82 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 

Par exemple: signifie (colonne 2)

Awk:

 awk '{ total += $2 } END { print total/NR }' yourFile.whatever 

Lire comme:

  • Pour chaque ligne, ajoutez la colonne 2 à une variable «total».
  • À la fin du fichier, imprimez «total» divisé par le nombre d’enregistrements.

Solution Perl:

 perl -lane '$total += $F[1]; END{print $total/$.}' file 

-a automatiquement la ligne dans le tableau @F, indexé à partir de 0
$. est le numéro de ligne

Si vos champs sont séparés par des virgules au lieu des espaces:

 perl -F, -lane '$total += $F[1]; END{print $total/$.}' file 

Pour imprimer les valeurs moyennes de toutes les colonnes, atsortingbuez des totaux au tableau @t:

 perl -lane 'for $c (0..$#F){$t[$c] += $F[$c]}; END{for $c (0..$#t){print $t[$c]/$.}}' 

sortie:

 0 0.485 14.38 1.74 0.888333333333333 77.27 49.8266666666667 39.91 1.29833333333333 434.131666666667 

Vous pouvez utiliser python pour cela, est disponible sous Linux.

Si cela vient d’un fichier, jetez un oeil à cette question , utilisez simplement float à la place.

Par exemple:

 #mean.py def main(): with open("mean.txt", 'r') as f: data = [map(float, line.split()) for line in f] columnTwo = [] for row in data: columnTwo.append( row[1] ) print sum(columnTwo,0.0) / len( columnTwo ) if __name__=="__main__": main() 

Prints 14.38

Je viens d’inclure les données dans le fichier mean.txt, pas l’en-tête de la ligne: “sda”

David Zaslavsky pour le plaisir:

 with open("mean.txt", 'r') as f: n,t = map(sum, zip(*((1, float(line.split()[1])) for line in f))) print t/n 

Simple-r calculera la moyenne avec la ligne suivante:

 r -k2 mean file.txt 

pour la deuxième colonne. Il peut également effectuer des parsings statistiques beaucoup plus sophistiquées, car il utilise l’ environnement R pour toutes ses parsings statistiques.