【问题标题】:Averaging tab separated values平均制表符分隔值
【发布时间】:2014-04-19 02:16:01
【问题描述】:

我有几个来自 Acquire1_00001.txt ... Acquire1_00050.txt 的文件

里面的值都是这样用tab分隔的:

3.500E2 -2.3386E0
3.510E2 39.192E-2
3.520E2 -46.143E-2
3.530E2 -42.809E-4
3.540E2 2.9356E0
3.550E2 1.0014E0
3.560E2 -1.3001E0
3.570E2 4.5244E0

现在我正在尝试将所有文​​件平均到一个新文件中。到目前为止,这些值的指数表示法让我发疯。我能做什么?

【问题讨论】:

  • 我用这个解决了这个问题:awk '{ sum[$1]+=$2; cnt[$1]++ } END { for (i in sum) print i, sum[i]/cnt[i] | "sort -n" }' Acquire1_* > out.data 我在这里找到的:stackoverflow.com/questions/13263963/…

标签: tabs notation exponential tsv


【解决方案1】:

这是一个相当标准的E-notation,很多软件都可以理解。

在 unix 上使用脚本转换为标准十进制表示法很容易,尽管您会损失一些精度(例如,1e-100 会打印 0.00000):

 awk '{ printf "%.40f %.40f\n", $1, $2}' < e-notation-file.txt > d-notation-file.txt

【讨论】:

  • 谢谢,我发现%.6f 的精度足以处理这些数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-22
  • 2011-07-19
  • 1970-01-01
  • 1970-01-01
  • 2011-05-02
  • 1970-01-01
相关资源
最近更新 更多