我有 200 个文本文件。每个文本文件包含一列数学数字(100k 行)。
我想对这些数据进行一些统计处理(找到概率或分位数)。我知道每个文件关联的平均值和西格玛值。有没有直接的方法来计算数据集的概率或分位数?
如果没有,那么我知道分位数的公式 =(排序数据平均值)/sigma。例如
输入文件.txt
12.2
10.11
15.55
5.01
...
...
12.9
临时文件.txt
5.01
10.11
12.2
12.9
15.55
...
...
最终输出文件应包含两列。第一列与第二列相同temp_output.txt
,第二列是每个元素的以下数学函数:
= (row(i)-mean)/sigma
其中平均值和西格玛是两个数学数字,分别为 10.1 和 2.02。对于上述值,最终输出文件应如下所示
输出.txt
5.01 -2.51980198
10.11 0.004950495
12.2 1.03960396
12.9 1.386138614
15.55 2.698019802
...
...
答案1
你有这样的事吗
mybox $ cat file1.txt
12.2
10.11
15.55
5.01
mybox $ awk -v mean=10.2 -v sigma=2.02 '{printf "%f %f\n",$1,($1-mean)/sigma ; }' file1.txt
12.200000 0.990099
10.110000 -0.044554
15.550000 2.648515
5.010000 -2.569307
神秘的部分
awk -v mean=10.2 -v sigma=2.02 '{printf "%f %f\n",$1,($1-mean)/sigma ; }' file1.txt
您打算如何提供mean1,mean2,...mean200?