我有一组来自模拟重复的输出 csv 文件。文件中的每个文件行都遵循相同的格式:generation、number、value1、value2、... valueX。 (该文件还包括标题,顺序相同。
我想计算每个文件的每个单元格之间的平均值和标准差,并输出另一个 csv 文件,其中平均值将位于原始文件的相同单元格/位置。 stdev 可以位于同一单元格/位置的另一个文件中,也可以位于所有单元格之后:
代、number_mean、value1_mean、value2_mean、...、valueX_mean、value1_stdev、value2_stdev、...、valueX_stdev
这样做的好方法是什么?
输出 csv 文件遵循与输入文件相同的格式非常重要。
非常感谢。
答案1
您可以使用磨坊主。
在示例中从
a,v1,v2,v3
a,25,56,23
b,58,56,23
你可以跑merge-fields
mlr --csv merge-fields -a mean,stddev -r "v[0-9]" -o "result" -k input.csv >output.csv
具有
A | v1 | v2 | v3 | 结果_平均值 | 结果_stddev |
---|---|---|---|---|---|
A | 25 | 56 | 23 | 34.666667 | 18.502252 |
乙 | 58 | 56 | 23 | 45.666667 | 19.655364 |