i z r
1 -30 3.5
2 -30 3.4
3 -30 3.6
...
10 -30 4.2
1 -29.5 4.6
2 -29.5 2.8
3 -29.5 3.4
....
10 -29.5 3.6
1 -29.0 2.5
2 -29.0 2.6
3 -29.0 3.0
我有一个内容为3列(上图)的文件。除了第一行(i z r),我的数据文件有600行。首先,我考虑使用命令将第3列拆分为10行连续段,然后使用另一个脚本计算每个段的均值和SD(“i”从1到10)。之后,我想将所有结果放入一个文件(result.dat)。结果文件将如下所示内容为3列: z表示SD 我尝试了下面的脚本。但是我不知道如何将它们组合在一个脚本文件中。
10 = split($3, array, " ")
BEGIN {n=0 ; s=0; ss =0}
NF=10 {n++; s+= $3; ss == $3;}
END {
means=(s)/10
SD=sqrt((ss-m)*(ss-m))/10
prin $2 $means $SD}' data.dat >> result.dat
请帮帮我。非常感谢你。
答案 0 :(得分:0)
#!/usr/bin/awk -f
{ s += $3; ss += $3*$3;
if ($1 == 10)
{ print $2, s/10, sqrt((ss-s*s/10)/10) >"result.dat"; s = ss = 0 }
}