【发布时间】:2013-11-14 17:12:45
【问题描述】:
我有一个这种格式的大型数据集
HF TLLL A T 0.999 NA 0.666 NA 0.566 NA NA 0.87
HF TLLM A T 0.500 0.500 0.666 0.566 NA NA 0.87
我想计算每行的平均值,从第 5 列开始到行尾,忽略字符串 NA。然后将平均值附加到每行的末尾。
输出如下所示:
HF TLLL A T 0.999 NA 0.666 NA 0.566 NA NA 0.87 0.775
HF TLLM A T 0.500 0.500 0.666 0.566 NA NA 0.87 0.620
我一直得到这样的总和,但不知道如何跟踪求和的整数数,以计算平均值。
awk '{x=0;for(i=5;i<=NF;i++)x=x+$i;print $0, x}'
【问题讨论】:
-
我假设average,您的意思是算术平均数。 “NA”算作零数据点,还是完全忽略?这将影响每行数据点的数量,从而影响计算的平均值。
-
是的,我的意思是算术平均值。 NA 应该被完全忽略。
-
我想知道你为什么在这个问题上被否决了。您有样本输入、预期输出、映射解释和尝试的解决方案。据我所知,这只是一个完美的问题!
-
有人对这篇文章投了反对票。很高兴知道为什么。帖子写得很好,输入数据,预期输出,并尝试解决它。所以我投了赞成票。编辑:@EdMorton 你打败了我几秒钟 :)
-
@Jotne 赞一个好主意,我现在也这样做了。