我有两个文件。每个列都有一列,其中一些数据丢失为9999,9000。例如
ifile1.txt ifile2.txt
30 20
9999 10
10 40
40 30
10 31
29 9000
9000 9999
9999 9999
31 1250
550 29
我想在不考虑缺失值的情况下计算上述两个文件的平均值之间的差异。即。
average (ifile1.txt) - average (ifile2.txt)
我试过这样,但没有得到结果。
ave1=$(awk '!/\9999/ && !/\9000/{sum += $1; count++} END {print count ? (sum/count) : count;sum=count=0}' ifile1.txt)
ave2=$(awk '!/\9999/ && !/\9000/{sum += $1; count++} END {print count ? (sum/count) : count;sum=count=0}' ifile2.txt)
result=$(ave1-ave2)
echo $result
答案 0 :(得分:2)
<?php
mysql_connect("localhost","root","");
mysql_select_db("rohan");
$s="select * from black";
$resource=mysql_query($s);
$row = mysql_fetch_row($resource);
echo "ID: ".row[0]."<br>";
echo "Name: ".row[1]." ".row[2]."<br>";
echo "E-mail: ".row[3]."<br>";
echo "country: ".row[4]."<br>";
echo "salary: ".row[5]."<br>";
更新
awk '!/9000|9999/{a[FILENAME]+=$0;b[FILENAME]++}END{for(i in a)c=c?c-a[i]/b[i]:a[i]/b[i];print c}' file1 file2
或
awk '!/9000|9999/{a[ARGIND]+=$0;b[ARGIND]++}END{print a[1]/b[1]-a[2]/b[2]}' file1 file2
答案 1 :(得分:1)
您的awk
将计算平均值,但bash不会进行浮点运算。您可以随时使用bc
。
$ echo "$ave1 - $ave2" | bc
-101.429
对于表达式,您还必须使用$(( ... ))