Linux   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 概率排除零后,数组中每个唯一数字(长度未知)的分布大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我的部分数据文件看起来像 ifile.txt 1 1 3 0 6 3 0 3 3 5 我想找出除零之外的每个数字的概率.例如P(1)= 2/8; P(3)= 4/8,依此类推 欲望输出 ofile.txt 1 0.250 3 0.500 5 0.125 6 0.125 第1列显示除0和第2列之外的唯一数字显示概率.我正在尝试如下,但看起来非常冗长的想法.我在for循环中遇到问题,因为有很多
我的部分数据文件看起来像

ifile.txt
1
1
3
0
6
3
0
3
3
5

我想找出除零之外的每个数字的概率.例如P(1)= 2/8; P(3)= 4/8,依此类推

欲望输出

ofile.txt
1  0.250
3  0.500
5  0.125
6  0.125

第1列显示除0和第2列之外的唯一数字显示概率.我正在尝试如下,但看起来非常冗长的想法.我在for循环中遇到问题,因为有很多唯一的数字

n=$(awk '$1 > 0 {print $0}' ifile.txt | wc -l)
for i in 1 3 5 6 .....
do
n1=$(awk '$1 == $i {print $0}' ifile.txt | wc -l)
p=$(echo $n1/$n | bc -l)
printf "%d %.3f\n" "$i $p" >> ofile.txt
done

解决方法

在awk中使用关联数组可以在一次传递中获取每个唯一编号的计数.

awk '$0 != "0" { count[$0]++; @R_845_10586@L++ } 
     END { for(i in count) printf("%d %.3f\n",i,count[i]/@R_845_10586@l) }' ifile.txt | sort -n > ofile.txt

大佬总结

以上是大佬教程为你收集整理的linux – 概率排除零后,数组中每个唯一数字(长度未知)的分布全部内容,希望文章能够帮你解决linux – 概率排除零后,数组中每个唯一数字(长度未知)的分布所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。