我有一个文件是2500列,我需要计算前2499列的均方根。能否直接用gawk进行计算?能的话有没有具体的脚本。
下面是我只有两列列数据时尝试的脚本,是可以成功运行的。
for (( k=0;k<=100;k++ ));do
gawk -v dis1=${k} 'BEGIN{OFS="\t"}{if(($1<dis1)){count++;sum += $2*$2;}}END{if(count>0){avg=sqrt(sum/count);}else{count=0;avg=0;}print dis1,count,avg}' file1 >>file2
done
这是尝试的脚本,但脚本无法运行。
for (( k=0;k<=100;k++ ));do
gawk -v dis1=${k} 'BEGIN{OFS="\t"}{for(i=1;i<NF;i++){if(($NF<dis1)){count++;sum[i] += $i*$i;}}}END{if(count>0){avg[i]=sqrt((sum[i])/(count));}else{count=0;avg[i]=0;}print dis1,avg[i]}' file1 >>file2
done
试下这个脚本呢