求一定区间内列数据的均值
Finding mean of column data in certain interval
我发现 awk
可用于计算列的平均值,如 here 中所示。假设我想计算第二列的平均值,但只计算特定行之间的元素(例如,从第 2 行到第 6 行)。如何做到这一点?
尝试:
$ awk -v s=2 -v e=6 '{if((>=s)&&(<=e)){sum+=;n++}}END{print (n!=0)?sum/n:0}' input.txt
解释:
#!/bin/awk
BEGIN {
start = 2
end = 6
}
{
if( ( >= start) && ( <= end) )
{
sum = sum +
n = n + 1
}
}
END {
print ( n!= 0) ? sum / n : 0
}
#eof#
希望对您有所帮助!
$ awk '>=2 && <=6 {sum+=; count++}
END {print (count?sum/count:"N/A")}' file
我找到了解决方案。 awk
有参数 FNR
表示记录数,通常表示行号。在 karakfa 的 :
上使用它
awk 'FNR>=2 && FNR<=6 {sum+=; count++}
END {print (count?sum/count:"N/A")}' file
我发现 awk
可用于计算列的平均值,如 here 中所示。假设我想计算第二列的平均值,但只计算特定行之间的元素(例如,从第 2 行到第 6 行)。如何做到这一点?
尝试:
$ awk -v s=2 -v e=6 '{if((>=s)&&(<=e)){sum+=;n++}}END{print (n!=0)?sum/n:0}' input.txt
解释:
#!/bin/awk
BEGIN {
start = 2
end = 6
}
{
if( ( >= start) && ( <= end) )
{
sum = sum +
n = n + 1
}
}
END {
print ( n!= 0) ? sum / n : 0
}
#eof#
希望对您有所帮助!
$ awk '>=2 && <=6 {sum+=; count++}
END {print (count?sum/count:"N/A")}' file
我找到了解决方案。 awk
有参数 FNR
表示记录数,通常表示行号。在 karakfa 的
awk 'FNR>=2 && FNR<=6 {sum+=; count++}
END {print (count?sum/count:"N/A")}' file