我正在寻找一种方法来生成一些关于我的模型预测的统计数据。 左边是真值,右边是预测。 我的真值是在一个区间上,所以我想把它们压缩成每个区间的一个值,并知道做出了哪些预测。 我想我需要对第一列执行类似于“uniq”的操作,并迭代第二列的每一行,直到第一列中的值发生变化。 我可以想象,awk会非常擅长使用$1和$2来处理列,但是在不丢失第一列中的信息的情况下,第二列的迭代就是我所处的位置。值得注意的是,第一列中的值可能出现多次,我希望它们在每个间隔中重复,而不是按顺序重复。 我可以接受shell或python中的任何代码。你知道吗
输入示例:
1 1
1 0
1 1
2 2
2 2
1 1
3 3
3 3
3 2
3 3
2 3
2 2
2 1
输出示例:
1 1 0 1
2 2 2
1 1
3 3 3 2 3
2 3 2 1
使用
awk
非常简单:结果
解释
NR>1{cr="\n"}
:cr
或回车:在处理第一条记录之前将为空(NR>1
)。你知道吗L!=$1{printf "%s%s ",cr,$1;L=$1}
:如果L
最后一个键与当前的($1
)不同,它将打印当前键$1
(第一条记录为null),并将其值存储在L
中作为最后一个处理的键。你知道吗{printf " %s" ,$2}
:只需显示每个记录的第二列。你知道吗END{print ""}
:在处理所有记录时,打印最终的回车。你知道吗下面是bash中的一个版本:
相关问题 更多 >
编程相关推荐